aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-03-16 16:18:46 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2018-03-16 19:10:25 +0000
commit6280c153bb8c33d661ffc40291cb41f9068786d8 (patch)
treee0e58f81d0095fba6cef1c48afb5f868d4bfac50
parentb96f889e44afe4ec0adabd697364c05d27c9c9a0 (diff)
F1AP: initial dissector submission based on v15.0.0
Change-Id: Icf5c128119afa86efddb87e744f7aecb8bf71e09 Reviewed-on: https://code.wireshark.org/review/26506 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r--configure.ac1
-rw-r--r--docbook/release-notes.asciidoc1
-rw-r--r--epan/dissectors/.editorconfig3
-rw-r--r--epan/dissectors/CMakeLists.txt2
-rw-r--r--epan/dissectors/Makefile.am2
-rw-r--r--epan/dissectors/asn1/CMakeLists.txt1
-rw-r--r--epan/dissectors/asn1/Makefile.am1
-rw-r--r--epan/dissectors/asn1/f1ap/CMakeLists.txt43
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn34
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-Constants.asn148
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-Containers.asn200
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-IEs.asn385
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn938
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn260
-rw-r--r--epan/dissectors/asn1/f1ap/Makefile.am35
-rw-r--r--epan/dissectors/asn1/f1ap/f1ap.cnf497
-rw-r--r--epan/dissectors/asn1/f1ap/packet-f1ap-template.c235
-rw-r--r--epan/dissectors/asn1/nr-rrc/nr-rrc.cnf4
-rw-r--r--epan/dissectors/asn1/x2ap/CMakeLists.txt1
-rw-r--r--epan/dissectors/asn1/x2ap/Makefile.am1
-rw-r--r--epan/dissectors/asn1/x2ap/packet-x2ap-template.h29
-rw-r--r--epan/dissectors/asn1/x2ap/x2ap.cnf8
-rw-r--r--epan/dissectors/packet-f1ap.c4371
-rw-r--r--epan/dissectors/packet-nr-rrc.c26
-rw-r--r--epan/dissectors/packet-nr-rrc.h2
-rw-r--r--epan/dissectors/packet-x2ap.c264
-rw-r--r--epan/dissectors/packet-x2ap.h44
27 files changed, 7404 insertions, 132 deletions
diff --git a/configure.ac b/configure.ac
index 88a50aef8c..0f67875f27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2687,6 +2687,7 @@ AC_CONFIG_FILES(
epan/dissectors/asn1/dop/Makefile
epan/dissectors/asn1/dsp/Makefile
epan/dissectors/asn1/ess/Makefile
+ epan/dissectors/asn1/f1ap/Makefile
epan/dissectors/asn1/ftam/Makefile
epan/dissectors/asn1/goose/Makefile
epan/dissectors/asn1/gprscdr/Makefile
diff --git a/docbook/release-notes.asciidoc b/docbook/release-notes.asciidoc
index cb2cb04eee..3eb59e2a36 100644
--- a/docbook/release-notes.asciidoc
+++ b/docbook/release-notes.asciidoc
@@ -103,6 +103,7 @@ Broadcom tags (Broadcom Ethernet switch management frames)
CVS password server
CAN-ETH
Excentis DOCSIS31 XRA header
+F1 Application Protocol
F5ethtrailer
FP Mux
GRPC (gRPC)
diff --git a/epan/dissectors/.editorconfig b/epan/dissectors/.editorconfig
index 474d3d37fc..d3f54934de 100644
--- a/epan/dissectors/.editorconfig
+++ b/epan/dissectors/.editorconfig
@@ -713,6 +713,9 @@ indent_size = tab
indent_style = tab
indent_size = tab
+[packet-f1ap.[ch]]
+indent_size = 2
+
[packet-fcgi.[ch]]
indent_size = 3
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt
index 89849491be..336acd3420 100644
--- a/epan/dissectors/CMakeLists.txt
+++ b/epan/dissectors/CMakeLists.txt
@@ -94,6 +94,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-dsp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ecp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ess.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-f1ap.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ftam.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-goose.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_map.c
@@ -575,6 +576,7 @@ set(DISSECTOR_PUBLIC_HEADERS
packet-wtp.h
packet-x11.h
packet-x11-keysymdef.h
+ packet-x2ap.h
packet-x509af.h
packet-x509ce.h
packet-x509if.h
diff --git a/epan/dissectors/Makefile.am b/epan/dissectors/Makefile.am
index 10e4246ce7..486bec337e 100644
--- a/epan/dissectors/Makefile.am
+++ b/epan/dissectors/Makefile.am
@@ -109,6 +109,7 @@ ASN1_DISSECTOR_SRC = \
packet-dsp.c \
packet-ecp.c \
packet-ess.c \
+ packet-f1ap.c \
packet-ftam.c \
packet-goose.c \
packet-gsm_map.c \
@@ -1844,6 +1845,7 @@ DISSECTOR_INCLUDES = \
x11-extension-errors.h \
x11-glx-render-enum.h \
x11-enum.h \
+ packet-x2ap.h \
packet-x509af.h \
packet-x509ce.h \
packet-x509if.h \
diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt
index 72006ffcdb..6891bffe94 100644
--- a/epan/dissectors/asn1/CMakeLists.txt
+++ b/epan/dissectors/asn1/CMakeLists.txt
@@ -32,6 +32,7 @@ set(ASN1_SRC_DIRS
dop
dsp
ess
+ f1ap
ftam
goose
gprscdr
diff --git a/epan/dissectors/asn1/Makefile.am b/epan/dissectors/asn1/Makefile.am
index 185990928e..75bc121466 100644
--- a/epan/dissectors/asn1/Makefile.am
+++ b/epan/dissectors/asn1/Makefile.am
@@ -32,6 +32,7 @@ SUBDIRS = \
dop \
dsp \
ess \
+ f1ap \
ftam \
goose \
gprscdr \
diff --git a/epan/dissectors/asn1/f1ap/CMakeLists.txt b/epan/dissectors/asn1/f1ap/CMakeLists.txt
new file mode 100644
index 0000000000..7f7500e4eb
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/CMakeLists.txt
@@ -0,0 +1,43 @@
+# 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 f1ap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ F1AP-CommonDataTypes.asn
+ F1AP-Constants.asn
+ F1AP-Containers.asn
+ F1AP-IEs.asn
+ F1AP-PDU-Contents.asn
+ F1AP-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/f1ap/F1AP-CommonDataTypes.asn b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..003117eae0
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
@@ -0,0 +1,34 @@
+-- 3GPP TS 38.473 V15.0.0 (2017-12)
+-- 9.4.6 Common Definitions
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+F1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
+
+END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
new file mode 100644
index 0000000000..68f1fa08ec
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
@@ -0,0 +1,148 @@
+-- 3GPP TS 38.473 V15.0.0 (2017-12)
+-- 9.4.7 Constant Definitions
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+F1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM F1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-Reset ProcedureCode ::= 0
+id-F1Setup ProcedureCode ::= 1
+id-ErrorIndication ProcedureCode ::= 2
+id-gNBDUConfigurationUpdate ProcedureCode ::= 3
+id-gNBCUConfigurationUpdate ProcedureCode ::= 4
+id-UEContextSetup ProcedureCode ::= 5
+id-UEContextRelease ProcedureCode ::= 6
+id-UEContextModification ProcedureCode ::= 7
+id-UEContextModificationRequired ProcedureCode ::= 8
+id-UEMobilityCommand ProcedureCode ::= 9
+
+id-UEContextReleaseRequest ProcedureCode ::= 10
+id-InitialULRRCMessageTransfer ProcedureCode ::= 11
+id-DLRRCMessageTransfer ProcedureCode ::= 12
+id-ULRRCMessageTransfer ProcedureCode ::= 13
+id-SystemInformationDelivery ProcedureCode ::= 14
+id-Paging ProcedureCode ::= 15
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofErrors INTEGER ::= 256
+maxnoofIndividualF1ConnectionsToReset INTEGER ::= 256
+maxCellingNBDU INTEGER ::= 512
+maxnoofSCells INTEGER ::= 64
+maxnoofSRBs INTEGER ::= 8
+maxnoofDRBs INTEGER ::= 64
+maxnoofULTunnels INTEGER ::= 2
+maxnoofDLTunnels INTEGER ::= 2
+maxnoofBPLMNs INTEGER ::= 6
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause ProtocolIE-ID ::= 0
+id-CriticalityDiagnostics ProtocolIE-ID ::= 1
+id-gNB-DU-F1AP-ID ProtocolIE-ID ::= 2
+id-gNB-CU-F1AP-ID ProtocolIE-ID ::= 3
+id-ResetType ProtocolIE-ID ::= 4
+id-TimeToWait ProtocolIE-ID ::= 5
+id-UE-associatedLogicalF1-ConnectionItem ProtocolIE-ID ::= 6
+id-UE-associatedLogicalF1-ConnectionListResAck ProtocolIE-ID ::= 7
+id-RRCContainer ProtocolIE-ID ::= 8
+id-SRBID ProtocolIE-ID ::= 9
+id-gNB-DU-ID ProtocolIE-ID ::= 10
+id-gNB-Name ProtocolIE-ID ::= 11
+id-NRCellID ProtocolIE-ID ::= 12
+id-PCI ProtocolIE-ID ::= 13
+id-gNB-DU-Served-Cells-List ProtocolIE-ID ::= 14
+id-Cells-to-be-Activated-List ProtocolIE-ID ::= 15
+id-Served-Cells-To-Add-List ProtocolIE-ID ::= 16
+id-Served-Cells-To-Modify-List ProtocolIE-ID ::= 17
+id-Served-Cells-To-Delete-List ProtocolIE-ID ::= 18
+id-Cells-to-be-Deactivated-List ProtocolIE-ID ::= 19
+id-Cells-Failed-to-be-Activated-List ProtocolIE-ID ::= 20
+id-TransactionID ProtocolIE-ID ::= 21
+id-Served-Cell-Information ProtocolIE-ID ::= 22
+id-gNB-DU-System-Information ProtocolIE-ID ::= 23
+id-NCGI ProtocolIE-ID ::= 24
+id-gNB-CU-System-Information ProtocolIE-ID ::= 25
+id-OldNCGI ProtocolIE-ID ::= 26
+id-DRBID ProtocolIE-ID ::= 27
+id-PSCell-ID ProtocolIE-ID ::= 28
+id-EUTRANQoS ProtocolIE-ID ::= 29
+id-SRBs-ToBeSetup-List ProtocolIE-ID ::= 30
+id-DRBs-ToBeSetup-List ProtocolIE-ID ::= 31
+id-DLTunnels-ToBeSetup-List ProtocolIE-ID ::= 32
+id-ULTunnels-ToBeSetup-List ProtocolIE-ID ::= 33
+id-UL-GTP-Tunnel-EndPoint ProtocolIE-ID ::= 34
+id-DL-GTP-Tunnel-EndPoint ProtocolIE-ID ::= 35
+id-CUtoDURRCInformation ProtocolIE-ID ::= 36
+id-DUtoCURRCInformation ProtocolIE-ID ::= 37
+id-UERadioCapability ProtocolIE-ID ::= 38
+id-UEAggregateMaximumBitRate ProtocolIE-ID ::= 39
+id-SCell-ToBeSetup-List ProtocolIE-ID ::= 40
+id-ResourceCoordinationTransferContainer ProtocolIE-ID ::= 41
+id-DRBs-ToBeModified-List ProtocolIE-ID ::= 42
+id-DRBs-ToBeReleased-List ProtocolIE-ID ::= 43
+id-DRBs-Modified-List ProtocolIE-ID ::= 44
+id-DRBs-FailedToSetup-List ProtocolIE-ID ::= 45
+id-DRBs-FailedToBeModified-List ProtocolIE-ID ::= 46
+id-SCell-ID ProtocolIE-ID ::= 47
+id-DRXCycle ProtocolIE-ID ::= 48
+id-DRBs-Setup-List ProtocolIE-ID ::= 49
+id-SRBs-Setup-List ProtocolIE-ID ::= 50
+id-DRBs-FailedToBeSetup-List ProtocolIE-ID ::= 51
+id-SRBs-FailedToBeSetup-List ProtocolIE-ID ::= 52
+id-DLTunnels-ToBeSetup-list ProtocolIE-ID ::= 53
+id-ULTunnels-ToBeSetup-list ProtocolIE-ID ::= 54
+id-TransmissionStopIndicator ProtocolIE-ID ::= 55
+id-DRBs-Required-ToBeModified-List ProtocolIE-ID ::= 56
+id-DRBs-Required-ToBeReleased-List ProtocolIE-ID ::= 57
+id-SRBs-Required-ToBeReleased-List ProtocolIE-ID ::= 58
+id-oldgNB-DU-F1AP-ID ProtocolIE-ID ::= 59
+id-SRBs-ToBeReleased-List ProtocolIE-ID ::= 60
+id-DRBs-ModifiedConf-List ProtocolIE-ID ::= 61
+id-privateMessage ProtocolIE-ID ::= 62
+
+END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
new file mode 100644
index 0000000000..dff0bd4715
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
@@ -0,0 +1,200 @@
+-- 3GPP TS 38.473 V15.0.0 (2017-12)
+-- 9.4.8 Container Definitions
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+F1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+
+FROM F1AP-CommonDataTypes
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+
+FROM F1AP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+F1AP-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 IEs
+--
+-- **************************************************************
+
+F1AP-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
+--
+-- **************************************************************
+
+F1AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+F1AP-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 {F1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer {F1AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {F1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id F1AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality F1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value F1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {F1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {F1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id F1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality F1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue F1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality F1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue F1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, F1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-SingleContainer {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound,F1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {F1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {F1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id F1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality F1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue F1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {F1AP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {F1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id F1AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality F1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value F1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
new file mode 100644
index 0000000000..35dfd6ae25
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
@@ -0,0 +1,385 @@
+-- 3GPP TS 38.473 V15.0.0 (2017-12)
+-- 9.4.5 Information Element Definitions
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+F1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ maxnoofErrors,
+ maxnoofIndividualF1ConnectionsToReset,
+ maxnoofBPLMNs
+
+FROM F1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+
+FROM F1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ F1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ F1AP-PROTOCOL-IES
+
+FROM F1AP-Containers;
+
+-- A
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- B
+
+BitRate ::= INTEGER (0..4000000000000,...)
+
+BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
+
+-- C
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ 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,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unspecified,
+ ...
+}
+
+CauseTransport ::= ENUMERATED {
+ unspecified,
+ ...
+}
+
+CellGroupConfig ::= OCTET STRING
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CUtoDURRCInformation ::= SEQUENCE {
+ sCG-Config-Info SCG-Config-Info OPTIONAL,
+ uERadiocapabilities UERadiocapabilities,
+ iE-Extensions ProtocolExtensionContainer { { CUtoDURRCInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CUtoDURRCInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- D
+
+DRBID ::= INTEGER (0..15, ...)
+
+DRXCycle ::= SEQUENCE {
+ longDRXCycleLength LongDRXCycleLength,
+ shortDRXCycleLength ShortDRXCycleLength OPTIONAL,
+ shortDRXCycleTimer ShortDRXCycleTimer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRXCycle-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRXCycle-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+DUtoCURRCInformation ::= SEQUENCE {
+ cellGroupConfig CellGroupConfig,
+ iE-Extensions ProtocolExtensionContainer { { DUtoCURRCInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DUtoCURRCInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- E
+
+EUTRANQoS ::= SEQUENCE {
+ qCI QCI,
+ allocationAndRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRANQoS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRANQoS-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+-- F
+
+FDD-Info ::= SEQUENCE {
+ uL-NARFCN NARFCN,
+ dL-NARFCN NARFCN,
+ uL-Transmission-Bandwidth Transmission-Bandwidth,
+ dL-Transmission-Bandwidth Transmission-Bandwidth,
+ iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-Info-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+GNB-CU-F1AP-ID ::= INTEGER (0..4294967295)
+
+GNB-DU-F1AP-ID ::= INTEGER (0..4294967295)
+
+GNB-DU-ID ::= INTEGER (0..68719476735)
+
+GNB-DU-System-Information ::= SEQUENCE {
+ mIB-message MIB-message,
+ sIB1-message SIB1-message,
+ iE-Extensions ProtocolExtensionContainer { { GNB-DU-System-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+GNB-DU-System-Information-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GTPTunnelEndpoint ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { GTPTunnelEndpoint-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+GTPTunnelEndpoint-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- H
+
+-- I
+
+-- J
+
+-- K
+
+-- L
+
+LongDRXCycleLength ::= ENUMERATED
+{ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512, ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, ...}
+
+-- M
+
+MIB-message ::= OCTET STRING
+
+-- N
+
+NARFCN ::= INTEGER (0..65535)
+-- This IE may be refined
+
+NCGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ nRCellIdentity NRCellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {NCGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NCGI-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NR-Mode-Info ::= CHOICE {
+ fDD FDD-Info,
+ tDD TDD-Info,
+ ...
+}
+
+NRCellIdentity ::= BIT STRING (SIZE(36))
+
+-- O
+
+-- P
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+PCI ::= INTEGER(0..1007)
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+RRCContainer ::= OCTET STRING
+
+-- S
+SCG-Config-Info ::= OCTET STRING
+
+Served-Cell-Information ::= SEQUENCE {
+ nCGI NCGI,
+ pCI PCI,
+ broadcastPLMNs BroadcastPLMNs-Item,
+ nR-Mode-Info NR-Mode-Info,
+ iE-Extensions ProtocolExtensionContainer { {Served-Cell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Served-Cell-Information-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ShortDRXCycleLength ::= ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32, ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, ...}
+
+ShortDRXCycleTimer ::= INTEGER (1..16)
+
+SIB1-message ::= OCTET STRING
+
+SRBID ::= INTEGER (0..3, ...)
+-- T
+
+TDD-Info ::= SEQUENCE {
+ nARFCN NARFCN,
+ transmission-Bandwidth Transmission-Bandwidth,
+ iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-Info-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TransactionID ::= INTEGER (0..255, ...)
+
+Transmission-Bandwidth ::= INTEGER (0..65535)
+-- This IE may be refined
+
+TransmissionStopIndicator ::= ENUMERATED {true, ...}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UE-associatedLogicalF1-ConnectionItem ::= SEQUENCE {
+ gNB-CU-F1AP-ID GNB-CU-F1AP-ID OPTIONAL,
+ gNB-DU-F1AP-ID GNB-DU-F1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalF1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-associatedLogicalF1-ConnectionItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UERadiocapabilities::= OCTET STRING
+
+-- V
+
+-- W
+
+-- X
+
+-- Y
+
+-- Z
+
+END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..ef9e4cd96f
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
@@ -0,0 +1,938 @@
+-- 3GPP TS 38.473 V15.0.0 (2017-12)
+-- 9.4.4 PDU Definitions
+-- **************************************************************
+--
+-- PDU definitions for F1AP.
+--
+-- **************************************************************
+
+F1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Cause,
+ CriticalityDiagnostics,
+ GNB-CU-F1AP-ID,
+ GNB-DU-F1AP-ID,
+ TimeToWait,
+ UE-associatedLogicalF1-ConnectionItem,
+ RRCContainer,
+ TransactionID,
+ PCI,
+ GNB-DU-ID,
+ Served-Cell-Information,
+ GNB-DU-System-Information,
+ NCGI,
+ DRBID,
+ SRBID,
+ EUTRANQoS,
+ GTPTunnelEndpoint,
+ CUtoDURRCInformation,
+ DUtoCURRCInformation,
+ TransmissionStopIndicator, DRXCycle
+
+
+FROM F1AP-IEs
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-SingleContainer{},
+ F1AP-PRIVATE-IES,
+ F1AP-PROTOCOL-EXTENSION,
+ F1AP-PROTOCOL-IES,
+ F1AP-PROTOCOL-IES-PAIR
+
+FROM F1AP-Containers
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-gNB-CU-F1AP-ID,
+ id-gNB-DU-F1AP-ID,
+ id-ResetType,
+ id-TimeToWait,
+ id-UE-associatedLogicalF1-ConnectionItem,
+ id-UE-associatedLogicalF1-ConnectionListResAck,
+ id-RRCContainer,
+ id-SRBID,
+ id-TransactionID,
+ id-PCI,
+ id-gNB-DU-ID,
+ id-gNB-Name,
+ id-gNB-DU-Served-Cells-List,
+ id-Served-Cell-Information,
+ id-gNB-DU-System-Information,
+ id-Cells-to-be-Activated-List,
+ id-NCGI,
+ id-gNB-CU-System-Information,
+ id-Served-Cells-To-Add-List,
+ id-Served-Cells-To-Modify-List,
+ id-Served-Cells-To-Delete-List,
+ id-OldNCGI,
+ id-Cells-to-be-Deactivated-List,
+ id-Cells-Failed-to-be-Activated-List,
+ id-DRBID,
+ id-SRBID,
+ id-PSCell-ID,
+ id-EUTRANQoS,
+ id-SRBs-ToBeSetup-List,
+ id-DRBs-ToBeSetup-List,
+ id-DLTunnels-ToBeSetup-List,
+ id-ULTunnels-ToBeSetup-List,
+ id-UL-GTP-Tunnel-EndPoint,
+ id-DL-GTP-Tunnel-EndPoint,
+ id-CUtoDURRCInformation,
+ id-DUtoCURRCInformation,
+ id-UERadioCapability,
+ id-UEAggregateMaximumBitRate,
+ id-SCell-ToBeSetup-List,
+ id-ResourceCoordinationTransferContainer,
+ id-DRBs-ToBeModified-List,
+ id-SRBs-ToBeReleased-List,
+ id-DRBs-ToBeReleased-List,
+ id-DRBs-Modified-List,
+ id-DRBs-FailedToSetup-List,
+ id-DRBs-FailedToBeModified-List,
+ id-SCell-ID,
+ id-DRXCycle,
+ id-DRBs-Setup-List,
+ id-SRBs-Setup-List,
+ id-DRBs-FailedToBeSetup-List,
+ id-SRBs-FailedToBeSetup-List,
+ id-DLTunnels-ToBeSetup-list,
+ id-ULTunnels-ToBeSetup-list,
+ id-TransmissionStopIndicator,
+ id-DRBs-Required-ToBeModified-List,
+ id-DRBs-Required-ToBeReleased-List,
+ id-SRBs-Required-ToBeReleased-List,
+ id-oldgNB-DU-F1AP-ID,
+ maxnoofSCells,
+ maxnoofSRBs,
+ maxnoofDRBs,
+ maxnoofULTunnels,
+ maxnoofDLTunnels,
+ maxCellingNBDU,
+ maxnoofErrors,
+ maxnoofIndividualF1ConnectionsToReset,
+ id-DRBs-ModifiedConf-List
+
+FROM F1AP-Constants;
+
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ f1-Interface ResetAll,
+ partOfF1-Interface UE-associatedLogicalF1-ConnectionListRes,
+ ...
+}
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalF1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualF1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalF1-ConnectionItemRes } }
+
+UE-associatedLogicalF1-ConnectionItemRes F1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalF1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalF1-ConnectionItem PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-UE-associatedLogicalF1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalF1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalF1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualF1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalF1-ConnectionItemResAck } }
+
+UE-associatedLogicalF1-ConnectionItemResAck F1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalF1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalF1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
+ ...
+}
+
+ErrorIndicationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory}|
+ { ID id-gNB-CU-F1AP-ID CRITICALITY ignore TYPE GNB-CU-F1AP-ID PRESENCE optional }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY ignore TYPE GNB-DU-F1AP-ID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- F1 SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- F1 Setup Request
+--
+-- **************************************************************
+
+F1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {F1SetupRequestIEs} },
+ ...
+}
+
+F1SetupRequestIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-gNB-DU-ID CRITICALITY reject TYPE GNB-DU-ID PRESENCE mandatory }|
+ { ID id-gNB-Name CRITICALITY ignore TYPE GNB-Name PRESENCE optional }|
+ { ID id-gNB-DU-Served-Cells-List CRITICALITY reject TYPE GNB-DU-Served-Cells-List PRESENCE mandatory },
+ ...
+}
+
+
+GNB-DU-Served-Cells-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { GNB-DU-Served-Cells-ItemIEs } }
+
+GNB-DU-Served-Cells-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Served-Cell-Information CRITICALITY reject TYPE Served-Cell-Information PRESENCE mandatory }|
+ { ID id-gNB-DU-System-Information CRITICALITY reject TYPE GNB-DU-System-Information PRESENCE mandatory },
+ ...
+}
+
+GNB-Name ::= PrintableString(SIZE(1..150,...))
+
+-- **************************************************************
+--
+-- F1 Setup Response
+--
+-- **************************************************************
+
+F1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {F1SetupResponseIEs} },
+ ...
+}
+
+
+F1SetupResponseIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-Cells-to-be-Activated-List CRITICALITY reject TYPE Cells-to-be-Activated-List PRESENCE optional },
+ ...
+}
+
+
+Cells-to-be-Activated-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Cells-to-be-Activated-List-ItemIEs } }
+
+Cells-to-be-Activated-List-ItemIEs F1AP-PROTOCOL-IES::= {
+ { ID id-NCGI CRITICALITY reject TYPE NCGI PRESENCE mandatory}|
+ { ID id-PCI CRITICALITY reject TYPE PCI PRESENCE optional},
+...
+}
+
+-- **************************************************************
+--
+-- F1 Setup Failure
+--
+-- **************************************************************
+
+F1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {F1SetupFailureIEs} },
+ ...
+}
+
+F1SetupFailureIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- GNB-DU CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- GNB-DU CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+GNBDUConfigurationUpdate::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNBDUConfigurationUpdateIEs} },
+ ...
+}
+
+GNBDUConfigurationUpdateIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Served-Cells-To-Add-List CRITICALITY reject TYPE Served-Cells-To-Add-List PRESENCE optional }|
+ { ID id-Served-Cells-To-Modify-List CRITICALITY reject TYPE Served-Cells-To-Modify-List PRESENCE optional }|
+ { ID id-Served-Cells-To-Delete-List CRITICALITY reject TYPE Served-Cells-To-Delete-List PRESENCE optional },
+ ...
+}
+Served-Cells-To-Add-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Served-Cells-To-Add-ItemIEs } }
+Served-Cells-To-Modify-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Served-Cells-To-Modify-ItemIEs } }
+Served-Cells-To-Delete-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Served-Cells-To-Delete-ItemIEs } }
+
+Served-Cells-To-Add-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Served-Cell-Information CRITICALITY reject TYPE Served-Cell-Information PRESENCE mandatory }|
+ { ID id-gNB-DU-System-Information CRITICALITY reject TYPE GNB-DU-System-Information PRESENCE mandatory },
+...
+}
+
+Served-Cells-To-Modify-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-OldNCGI CRITICALITY reject TYPE NCGI PRESENCE mandatory }|
+ { ID id-Served-Cell-Information CRITICALITY reject TYPE Served-Cell-Information PRESENCE mandatory }|
+ { ID id-gNB-DU-System-Information CRITICALITY reject TYPE GNB-DU-System-Information PRESENCE optional },
+...
+}
+
+Served-Cells-To-Delete-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-OldNCGI CRITICALITY reject TYPE NCGI PRESENCE mandatory },
+...
+}
+
+-- **************************************************************
+--
+-- GNB-DU CONFIGURATION UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+
+GNBDUConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNBDUConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+GNBDUConfigurationUpdateAcknowledgeIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Cells-to-be-Activated-List CRITICALITY reject TYPE Cells-to-be-Activated-List PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-DU CONFIGURATION UPDATE FAILURE
+--
+-- **************************************************************
+
+GNBDUConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNBDUConfigurationUpdateFailureIEs} },
+ ...
+}
+
+GNBDUConfigurationUpdateFailureIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- GNB-CU CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+GNBCUConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { GNBCUConfigurationUpdateIEs} },
+ ...
+}
+
+GNBCUConfigurationUpdateIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Cells-to-be-Activated-List CRITICALITY reject TYPE Cells-to-be-Activated-List PRESENCE optional }|
+ { ID id-Cells-to-be-Deactivated-List CRITICALITY reject TYPE Cells-to-be-Deactivated-List PRESENCE optional },
+ ...
+}
+
+Cells-to-be-Deactivated-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Cells-to-be-Deactivated-List-ItemIEs } }
+
+Cells-to-be-Deactivated-List-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-NCGI CRITICALITY reject TYPE NCGI PRESENCE mandatory },
+...}
+
+
+-- **************************************************************
+--
+-- GNB-CU CONFIGURATION UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+
+GNBCUConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { GNBCUConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+GNBCUConfigurationUpdateAcknowledgeIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Cells-Failed-to-be-Activated-List CRITICALITY reject TYPE Cells-Failed-to-be-Activated-List PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+Cells-Failed-to-be-Activated-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Cells-Failed-to-be-Activated-List-ItemIEs } }
+
+Cells-Failed-to-be-Activated-List-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-NCGI CRITICALITY reject TYPE NCGI PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+...
+}
+
+-- **************************************************************
+--
+-- GNB-CU CONFIGURATION UPDATE FAILURE
+--
+-- **************************************************************
+
+GNBCUConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { GNBCUConfigurationUpdateFailureIEs} },
+ ...
+}
+
+GNBCUConfigurationUpdateFailureIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Setup ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE CONTEXT SETUP REQUEST
+--
+-- **************************************************************
+
+UEContextSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextSetupRequestIEs} },
+ ...
+}
+
+UEContextSetupRequestIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY ignore TYPE GNB-DU-F1AP-ID PRESENCE optional }|
+ { ID id-PSCell-ID CRITICALITY ignore TYPE NCGI PRESENCE optional }|
+ { ID id-CUtoDURRCInformation CRITICALITY reject TYPE CUtoDURRCInformation PRESENCE mandatory}|
+ { ID id-DRXCycle CRITICALITY ignore TYPE DRXCycle PRESENCE optional }|
+ { ID id-ResourceCoordinationTransferContainer CRITICALITY reject TYPE ResourceCoordinationTransferContainer PRESENCE optional }|
+ { ID id-SCell-ToBeSetup-List CRITICALITY ignore TYPE SCell-ToBeSetup-List PRESENCE optional }|
+ { ID id-SRBs-ToBeSetup-List CRITICALITY reject TYPE SRBs-ToBeSetup-List PRESENCE optional }|
+ { ID id-DRBs-ToBeSetup-List CRITICALITY reject TYPE DRBs-ToBeSetup-List PRESENCE mandatory },
+ ...
+}
+
+SCell-ToBeSetup-List::= SEQUENCE (SIZE(1..maxnoofSCells)) OF ProtocolIE-SingleContainer { { SCell-ToBeSetup-ItemIEs} }SRBs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofSRBs)) OF ProtocolIE-SingleContainer { { SRBs-ToBeSetup-ItemIEs} }
+DRBs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-ToBeSetup-ItemIEs} }
+
+ResourceCoordinationTransferContainer ::= OCTET STRING
+
+SCell-ToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-SCell-ID CRITICALITY ignore TYPE NCGI PRESENCE mandatory },
+ ...
+}
+
+SRBs-ToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-SRBID CRITICALITY reject TYPE SRBID PRESENCE mandatory},
+ ...
+}
+
+DRBs-ToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY reject TYPE DRBID PRESENCE mandatory}|
+ { ID id-EUTRANQoS CRITICALITY reject TYPE EUTRANQoS PRESENCE optional}|
+ { ID id-ULTunnels-ToBeSetup-list CRITICALITY reject TYPE ULTunnels-ToBeSetup-list PRESENCE mandatory},
+ ...
+}
+
+ULTunnels-ToBeSetup-list ::= SEQUENCE (SIZE(1..maxnoofULTunnels)) OF ProtocolIE-SingleContainer { { ULTunnels-ToBeSetup-ItemIEs} }
+
+ULTunnels-ToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-UL-GTP-Tunnel-EndPoint CRITICALITY reject TYPE GTPTunnelEndpoint PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT SETUP RESPONSE
+--
+-- **************************************************************
+
+UEContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextSetupResponseIEs} },
+ ...
+}
+
+
+UEContextSetupResponseIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-DUtoCURRCInformation CRITICALITY reject TYPE DUtoCURRCInformation PRESENCE mandatory }|
+ { ID id-ResourceCoordinationTransferContainer CRITICALITY reject TYPE ResourceCoordinationTransferContainer PRESENCE optional }|
+ { ID id-SRBs-Setup-List CRITICALITY ignore TYPE SRBs-Setup-List PRESENCE optional }|
+ { ID id-DRBs-Setup-List CRITICALITY ignore TYPE DRBs-Setup-List PRESENCE optional }|
+ { ID id-SRBs-FailedToBeSetup-List CRITICALITY ignore TYPE SRBs-FailedToBeSetup-List PRESENCE optional }|
+ { ID id-DRBs-FailedToBeSetup-List CRITICALITY ignore TYPE DRBs-FailedToBeSetup-List PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+SRBs-Setup-List ::= SEQUENCE (SIZE(1..maxnoofSRBs)) OF ProtocolIE-SingleContainer { { SRBs-Setup-ItemIEs} }
+DRBs-Setup-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-Setup-ItemIEs} }
+SRBs-FailedToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofSRBs)) OF ProtocolIE-SingleContainer { { SRBs-FailedToBeSetup-ItemIEs} }
+DRBs-FailedToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-FailedToBeSetup-ItemIEs} }
+
+SRBs-Setup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-SRBID CRITICALITY ignore TYPE SRBID PRESENCE mandatory},
+ ...
+}
+
+DRBs-Setup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY ignore TYPE DRBID PRESENCE mandatory}|
+ { ID id-DLTunnels-ToBeSetup-list CRITICALITY ignore TYPE DLTunnels-ToBeSetup-list PRESENCE mandatory},
+ ...
+}
+
+DLTunnels-ToBeSetup-list ::= SEQUENCE (SIZE(1..maxnoofDLTunnels)) OF ProtocolIE-SingleContainer { { DLTunnels-ToBeSetup-ItemIEs} }
+
+DLTunnels-ToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DL-GTP-Tunnel-EndPoint CRITICALITY ignore TYPE GTPTunnelEndpoint PRESENCE mandatory},
+ ...
+}
+
+SRBs-FailedToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-SRBID CRITICALITY ignore TYPE SRBID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional},
+ ...
+}
+
+DRBs-FailedToBeSetup-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY ignore TYPE DRBID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT SETUP FAILURE
+--
+-- **************************************************************
+
+UEContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextSetupFailureIEs} },
+ ...
+}
+
+UEContextSetupFailureIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY ignore TYPE GNB-DU-F1AP-ID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Request ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Release Request
+--
+-- **************************************************************
+
+UEContextReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ UEContextReleaseRequestIEs}},
+ ...
+}
+
+UEContextReleaseRequestIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Context Release (gNB-CU initiated) ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE COMMAND
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextReleaseCommandIEs} },
+ ...
+}
+
+UEContextReleaseCommandIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE COMPLETE
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextReleaseCompleteIEs} },
+ ...
+}
+
+
+UEContextReleaseCompleteIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ...
+}
+
+-- **************************************************************
+--
+-- UE Context Modification ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION REQUEST
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-PSCell-ID CRITICALITY ignore TYPE NCGI PRESENCE optional }|
+ { ID id-DRXCycle CRITICALITY ignore TYPE DRXCycle PRESENCE optional }|
+ { ID id-CUtoDURRCInformation CRITICALITY reject TYPE CUtoDURRCInformation PRESENCE optional }|
+ { ID id-TransmissionStopIndicator CRITICALITY ignore TYPE TransmissionStopIndicator PRESENCE optional }|
+ { ID id-ResourceCoordinationTransferContainer CRITICALITY reject TYPE ResourceCoordinationTransferContainer PRESENCE optional }|
+ { ID id-RRCContainer CRITICALITY ignore TYPE RRCContainer PRESENCE optional }|
+ { ID id-SCell-ToBeSetup-List CRITICALITY ignore TYPE SCell-ToBeSetup-List PRESENCE optional }|
+ { ID id-SRBs-ToBeSetup-List CRITICALITY reject TYPE SRBs-ToBeSetup-List PRESENCE optional }|
+ { ID id-DRBs-ToBeSetup-List CRITICALITY reject TYPE DRBs-ToBeSetup-List PRESENCE optional }|
+ { ID id-DRBs-ToBeModified-List CRITICALITY reject TYPE DRBs-ToBeModified-List PRESENCE optional }|
+ { ID id-SRBs-ToBeReleased-List CRITICALITY reject TYPE SRBs-ToBeReleased-List PRESENCE optional }|
+ { ID id-DRBs-ToBeReleased-List CRITICALITY reject TYPE DRBs-ToBeReleased-List PRESENCE optional },
+ ...
+}
+
+DRBs-ToBeModified-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-ToBeModified-ItemIEs} }
+SRBs-ToBeReleased-List ::= SEQUENCE (SIZE(1..maxnoofSRBs)) OF ProtocolIE-SingleContainer { { SRBs-ToBeReleased-ItemIEs} }
+DRBs-ToBeReleased-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-ToBeReleased-ItemIEs} }
+
+DRBs-ToBeModified-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY reject TYPE DRBID PRESENCE mandatory}|
+ { ID id-EUTRANQoS CRITICALITY reject TYPE EUTRANQoS PRESENCE optional}|
+ { ID id-ULTunnels-ToBeSetup-list CRITICALITY reject TYPE ULTunnels-ToBeSetup-list PRESENCE mandatory},
+ ...
+}
+
+SRBs-ToBeReleased-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-SRBID CRITICALITY reject TYPE SRBID PRESENCE mandatory},
+ ...
+}
+
+DRBs-ToBeReleased-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY reject TYPE DRBID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION RESPONSE
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+
+UEContextModificationResponseIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-ResourceCoordinationTransferContainer CRITICALITY reject TYPE ResourceCoordinationTransferContainer PRESENCE optional }|
+ { ID id-DUtoCURRCInformation CRITICALITY reject TYPE DUtoCURRCInformation PRESENCE optional}|
+ { ID id-DRBs-Setup-List CRITICALITY ignore TYPE DRBs-Setup-List PRESENCE optional}|
+ { ID id-DRBs-Modified-List CRITICALITY ignore TYPE DRBs-Modified-List PRESENCE optional}|
+ { ID id-SRBs-FailedToBeSetup-List CRITICALITY ignore TYPE SRBs-FailedToBeSetup-List PRESENCE optional }|
+ { ID id-DRBs-FailedToBeSetup-List CRITICALITY ignore TYPE DRBs-FailedToBeSetup-List PRESENCE optional }|
+ { ID id-DRBs-FailedToBeModified-List CRITICALITY ignore TYPE DRBs-FailedToBeModified-List PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+DRBs-Modified-List::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-Modified-ItemIEs } }
+DRBs-FailedToBeModified-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-FailedToBeModified-ItemIEs} }
+
+DRBs-Modified-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY ignore TYPE DRBID PRESENCE mandatory}|
+ { ID id-DLTunnels-ToBeSetup-list CRITICALITY ignore TYPE DLTunnels-ToBeSetup-list PRESENCE mandatory},
+ ...
+}
+
+DRBs-FailedToBeModified-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY ignore TYPE DRBID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION FAILURE
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Context Modification Required (gNB-DU initiated) ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION REQUIRED
+--
+-- **************************************************************
+
+UEContextModificationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequiredIEs} },
+ ...
+}
+
+UEContextModificationRequiredIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-ResourceCoordinationTransferContainer CRITICALITY reject TYPE ResourceCoordinationTransferContainer PRESENCE optional }|
+ { ID id-DUtoCURRCInformation CRITICALITY reject TYPE DUtoCURRCInformation PRESENCE optional}|
+ { ID id-DRBs-Required-ToBeModified-List CRITICALITY reject TYPE DRBs-Required-ToBeModified-List PRESENCE optional}|
+ { ID id-SRBs-Required-ToBeReleased-List CRITICALITY reject TYPE SRBs-Required-ToBeReleased-List PRESENCE optional}|
+ { ID id-DRBs-Required-ToBeReleased-List CRITICALITY reject TYPE DRBs-Required-ToBeReleased-List PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+DRBs-Required-ToBeModified-List::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-Required-ToBeModified-ItemIEs } }
+DRBs-Required-ToBeReleased-List::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-Required-ToBeReleased-ItemIEs } }
+
+SRBs-Required-ToBeReleased-List::= SEQUENCE (SIZE(1..maxnoofSRBs)) OF ProtocolIE-SingleContainer { { SRBs-Required-ToBeReleased-ItemIEs } }
+
+DRBs-Required-ToBeModified-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY reject TYPE DRBID PRESENCE mandatory}|
+ { ID id-DLTunnels-ToBeSetup-list CRITICALITY reject TYPE DLTunnels-ToBeSetup-list PRESENCE mandatory},
+ ...
+}
+
+DRBs-Required-ToBeReleased-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY reject TYPE DRBID PRESENCE mandatory},
+ ...
+}
+
+SRBs-Required-ToBeReleased-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-SRBID CRITICALITY reject TYPE SRBID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION CONFIRM
+--
+-- **************************************************************
+
+UEContextModificationConfirm::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationConfirmIEs} },
+ ...
+}
+
+
+UEContextModificationConfirmIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-ResourceCoordinationTransferContainer CRITICALITY reject TYPE ResourceCoordinationTransferContainer PRESENCE optional }|
+ { ID id-DRBs-ModifiedConf-List CRITICALITY ignore TYPE DRBs-ModifiedConf-List PRESENCE optional}|
+ { ID id-DRBs-FailedToBeModified-List CRITICALITY ignore TYPE DRBs-FailedToBeModified-List PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+DRBs-ModifiedConf-List::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRBs-ModifiedConf-ItemIEs } }
+
+DRBs-ModifiedConf-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-DRBID CRITICALITY ignore TYPE DRBID PRESENCE mandatory}|
+ { ID id-ULTunnels-ToBeSetup-list CRITICALITY ignore TYPE ULTunnels-ToBeSetup-list PRESENCE mandatory},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- DL RRC Message Transfer ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DL RRC Message Transfer
+--
+-- **************************************************************
+
+DLRRCMessageTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ DLRRCMessageTransferIEs}},
+ ...
+}
+
+DLRRCMessageTransferIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-oldgNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE optional }|
+ { ID id-SRBID CRITICALITY reject TYPE SRBID PRESENCE mandatory }|
+ { ID id-RRCContainer CRITICALITY reject TYPE RRCContainer PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- UL RRC Message Transfer ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UL RRC Message Transfer
+--
+-- **************************************************************
+
+ULRRCMessageTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ULRRCMessageTransferIEs}},
+ ...
+}
+
+ULRRCMessageTransferIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-F1AP-ID CRITICALITY reject TYPE GNB-CU-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-F1AP-ID CRITICALITY reject TYPE GNB-DU-F1AP-ID PRESENCE mandatory }|
+ { ID id-SRBID CRITICALITY reject TYPE SRBID PRESENCE mandatory }|
+ { ID id-RRCContainer CRITICALITY reject TYPE RRCContainer PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs F1AP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..9c170550bb
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
@@ -0,0 +1,260 @@
+-- 3GPP TS 38.473 V15.0.0 (2017-12)
+-- 9.4.3 Elementary Procedure Definitions
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+F1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+
+FROM F1AP-CommonDataTypes
+ Reset,
+ ResetAcknowledge,
+ F1SetupRequest,
+ F1SetupResponse,
+ F1SetupFailure,
+ GNBDUConfigurationUpdate,
+ GNBDUConfigurationUpdateAcknowledge,
+ GNBDUConfigurationUpdateFailure,
+ GNBCUConfigurationUpdate,
+ GNBCUConfigurationUpdateAcknowledge,
+ GNBCUConfigurationUpdateFailure,
+ UEContextSetupRequest,
+ UEContextSetupResponse,
+ UEContextSetupFailure,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextModificationFailure,
+ UEContextModificationRequired,
+ UEContextModificationConfirm,
+ ErrorIndication,
+ UEContextReleaseRequest,
+ DLRRCMessageTransfer,
+ ULRRCMessageTransfer,
+ PrivateMessage
+
+FROM F1AP-PDU-Contents
+ id-Reset,
+ id-F1Setup,
+ id-gNBDUConfigurationUpdate,
+ id-gNBCUConfigurationUpdate,
+ id-UEContextSetup,
+ id-UEContextRelease,
+ id-UEContextModification,
+ id-UEContextModificationRequired,
+ id-ErrorIndication,
+ id-UEContextReleaseRequest,
+ id-DLRRCMessageTransfer,
+ id-ULRRCMessageTransfer,
+ id-privateMessage
+
+
+FROM F1AP-Constants;
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+F1AP-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
+--
+-- **************************************************************
+
+F1AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode F1AP-ELEMENTARY-PROCEDURE.&procedureCode ({F1AP-ELEMENTARY-PROCEDURES}),
+ criticality F1AP-ELEMENTARY-PROCEDURE.&criticality ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value F1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode F1AP-ELEMENTARY-PROCEDURE.&procedureCode ({F1AP-ELEMENTARY-PROCEDURES}),
+ criticality F1AP-ELEMENTARY-PROCEDURE.&criticality ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value F1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode F1AP-ELEMENTARY-PROCEDURE.&procedureCode ({F1AP-ELEMENTARY-PROCEDURES}),
+ criticality F1AP-ELEMENTARY-PROCEDURE.&criticality ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value F1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+F1AP-ELEMENTARY-PROCEDURES F1AP-ELEMENTARY-PROCEDURE ::= {
+ F1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ F1AP-ELEMENTARY-PROCEDURES-CLASS-2,
+ ...
+}
+
+
+F1AP-ELEMENTARY-PROCEDURES-CLASS-1 F1AP-ELEMENTARY-PROCEDURE ::= {
+ reset |
+ f1Setup |
+ gNBDUConfigurationUpdate |
+ gNBCUConfigurationUpdate |
+ uEContextSetup |
+ uEContextRelease |
+ uEContextModification |
+ uEContextModificationRequired ,
+ ...}
+
+ F1AP-ELEMENTARY-PROCEDURES-CLASS-2 F1AP-ELEMENTARY-PROCEDURE ::= {
+ errorIndication |
+ uEContextReleaseRequest |
+ dLRRCMessageTransfer |
+ uLRRCMessageTransfer |
+ privateMessage ,
+ ...
+}
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+reset F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+f1Setup F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE F1SetupRequest
+ SUCCESSFUL OUTCOME F1SetupResponse
+ UNSUCCESSFUL OUTCOME F1SetupFailure
+ PROCEDURE CODE id-F1Setup
+ CRITICALITY reject
+}
+
+gNBDUConfigurationUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GNBDUConfigurationUpdate
+ SUCCESSFUL OUTCOME GNBDUConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME GNBDUConfigurationUpdateFailure
+ PROCEDURE CODE id-gNBDUConfigurationUpdate
+ CRITICALITY reject
+}
+
+gNBCUConfigurationUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GNBCUConfigurationUpdate
+ SUCCESSFUL OUTCOME GNBCUConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME GNBCUConfigurationUpdateFailure
+ PROCEDURE CODE id-gNBCUConfigurationUpdate
+ CRITICALITY reject
+}
+
+uEContextSetup F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextSetupRequest
+ SUCCESSFUL OUTCOME UEContextSetupResponse
+ UNSUCCESSFUL OUTCOME UEContextSetupFailure
+ PROCEDURE CODE id-UEContextSetup
+ CRITICALITY reject
+}
+
+uEContextRelease F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+uEContextModification F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uEContextModificationRequired F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequired
+ SUCCESSFUL OUTCOME UEContextModificationConfirm
+ PROCEDURE CODE id-UEContextModificationRequired
+ CRITICALITY reject
+}
+
+
+errorIndication F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+uEContextReleaseRequest F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseRequest
+ PROCEDURE CODE id-UEContextReleaseRequest
+ CRITICALITY ignore
+}
+
+
+dLRRCMessageTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DLRRCMessageTransfer
+ PROCEDURE CODE id-DLRRCMessageTransfer
+ CRITICALITY ignore
+}
+
+uLRRCMessageTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ULRRCMessageTransfer
+ PROCEDURE CODE id-ULRRCMessageTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+
+
+END
diff --git a/epan/dissectors/asn1/f1ap/Makefile.am b/epan/dissectors/asn1/f1ap/Makefile.am
new file mode 100644
index 0000000000..76ca823db4
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/Makefile.am
@@ -0,0 +1,35 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+include ../Makefile.inc
+
+PROTOCOL_NAME = f1ap
+
+EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ F1AP-CommonDataTypes.asn \
+ F1AP-Constants.asn \
+ F1AP-Containers.asn \
+ F1AP-IEs.asn \
+ F1AP-PDU-Contents.asn \
+ F1AP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
diff --git a/epan/dissectors/asn1/f1ap/f1ap.cnf b/epan/dissectors/asn1/f1ap/f1ap.cnf
new file mode 100644
index 0000000000..585c13ae59
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/f1ap.cnf
@@ -0,0 +1,497 @@
+# f1ap.cnf
+# f1ap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.USE_VALS_EXT
+LongDRXCycleLength
+ProcedureCode
+ProtocolIE-ID
+ShortDRXCycleLength
+
+#.EXPORTS
+
+#.PDU
+F1AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+Presence
+ProtocolIE-ContainerList
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+ProtocolIE-FieldPair
+#.END
+
+
+#.TYPE_RENAME
+
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+#PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_BODY ProtocolIE-ID VAL_PTR=&f1ap_data->protocol_ie_id
+ f1ap_private_data_t *f1ap_data = f1ap_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(f1ap_data->protocol_ie_id, &f1ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+
+#.FN_BODY ProtocolExtensionID VAL_PTR=&f1ap_data->protocol_extension_id
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+%(DEFAULT_BODY)s
+
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_BODY ProcedureCode VAL_PTR = &f1ap_data->procedure_code
+ f1ap_private_data_t *f1ap_data = f1ap_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
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_data->message_type = INITIATING_MESSAGE;
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+#.FN_HDR SuccessfulOutcome/value
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_data->message_type = SUCCESSFUL_OUTCOME;
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+#.FN_HDR UnsuccessfulOutcome/value
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_data->message_type = UNSUCCESSFUL_OUTCOME;
+#.END
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, F1AP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+# .FN_PARS ProtocolIE-ContainerList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+#.FN_HDR ProtocolIE-ContainerList
+# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, (asn1_par_type)0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+#.END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, F1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+# Currently not used
+# FN_PARS ProtocolIE-ContainerPairList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerPairList
+# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+# END
+
+#.FN_HDR PrivateIE-ID
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_data->obj_id = NULL;
+
+#.FN_BODY PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &f1ap_data->obj_id
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+%(DEFAULT_BODY)s
+
+#.FN_BODY PrivateIE-Field/value
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ if (f1ap_data->obj_id) {
+ offset = call_per_oid_callback(f1ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
+ } else {
+%(DEFAULT_BODY)s
+ }
+
+#.ASSIGN_VALUE_TO_TYPE # F1AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+
+id-Reset ProcedureCode
+id-F1Setup ProcedureCode
+id-ErrorIndication ProcedureCode
+id-gNBDUConfigurationUpdate ProcedureCode
+id-gNBCUConfigurationUpdate ProcedureCode
+id-UEContextSetup ProcedureCode
+id-UEContextRelease ProcedureCode
+id-UEContextModification ProcedureCode
+id-UEContextModificationRequired ProcedureCode
+id-UEMobilityCommand ProcedureCode
+id-UEContextReleaseRequest ProcedureCode
+id-InitialULRRCMessageTransfer ProcedureCode
+id-DLRRCMessageTransfer ProcedureCode
+id-ULRRCMessageTransfer ProcedureCode
+id-SystemInformationDelivery ProcedureCode
+id-Paging ProcedureCode
+
+# ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-gNB-DU-F1AP-ID ProtocolIE-ID
+id-gNB-CU-F1AP-ID ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-UE-associatedLogicalF1-ConnectionItem ProtocolIE-ID
+id-UE-associatedLogicalF1-ConnectionListResAck ProtocolIE-ID
+id-RRCContainer ProtocolIE-ID
+id-SRBID ProtocolIE-ID
+id-gNB-DU-ID ProtocolIE-ID
+id-gNB-Name ProtocolIE-ID
+id-NRCellID ProtocolIE-ID
+id-PCI ProtocolIE-ID
+id-gNB-DU-Served-Cells-List ProtocolIE-ID
+id-Cells-to-be-Activated-List ProtocolIE-ID
+id-Served-Cells-To-Add-List ProtocolIE-ID
+id-Served-Cells-To-Modify-List ProtocolIE-ID
+id-Served-Cells-To-Delete-List ProtocolIE-ID
+id-Cells-to-be-Deactivated-List ProtocolIE-ID
+id-Cells-Failed-to-be-Activated-List ProtocolIE-ID
+id-TransactionID ProtocolIE-ID
+id-Served-Cell-Information ProtocolIE-ID
+id-gNB-DU-System-Information ProtocolIE-ID
+id-NCGI ProtocolIE-ID
+id-gNB-CU-System-Information ProtocolIE-ID
+id-OldNCGI ProtocolIE-ID
+id-DRBID ProtocolIE-ID
+id-PSCell-ID ProtocolIE-ID
+id-EUTRANQoS ProtocolIE-ID
+id-SRBs-ToBeSetup-List ProtocolIE-ID
+id-DRBs-ToBeSetup-List ProtocolIE-ID
+id-DLTunnels-ToBeSetup-List ProtocolIE-ID
+id-ULTunnels-ToBeSetup-List ProtocolIE-ID
+id-UL-GTP-Tunnel-EndPoint ProtocolIE-ID
+id-DL-GTP-Tunnel-EndPoint ProtocolIE-ID
+id-CUtoDURRCInformation ProtocolIE-ID
+id-DUtoCURRCInformation ProtocolIE-ID
+id-UERadioCapability ProtocolIE-ID
+id-UEAggregateMaximumBitRate ProtocolIE-ID
+id-SCell-ToBeSetup-List ProtocolIE-ID
+id-ResourceCoordinationTransferContainer ProtocolIE-ID
+id-DRBs-ToBeModified-List ProtocolIE-ID
+id-DRBs-ToBeReleased-List ProtocolIE-ID
+id-DRBs-Modified-List ProtocolIE-ID
+id-DRBs-FailedToSetup-List ProtocolIE-ID
+id-DRBs-FailedToBeModified-List ProtocolIE-ID
+id-SCell-ID ProtocolIE-ID
+id-DRXCycle ProtocolIE-ID
+id-DRBs-Setup-List ProtocolIE-ID
+id-SRBs-Setup-List ProtocolIE-ID
+id-DRBs-FailedToBeSetup-List ProtocolIE-ID
+id-SRBs-FailedToBeSetup-List ProtocolIE-ID
+id-DLTunnels-ToBeSetup-list ProtocolIE-ID
+id-ULTunnels-ToBeSetup-list ProtocolIE-ID
+id-TransmissionStopIndicator ProtocolIE-ID
+id-DRBs-Required-ToBeModified-List ProtocolIE-ID
+id-DRBs-Required-ToBeReleased-List ProtocolIE-ID
+id-SRBs-Required-ToBeReleased-List ProtocolIE-ID
+id-oldgNB-DU-F1AP-ID ProtocolIE-ID
+id-SRBs-ToBeReleased-List ProtocolIE-ID
+id-DRBs-ModifiedConf-List ProtocolIE-ID
+id-privateMessage ProtocolIE-ID
+#.END
+
+#.REGISTER
+
+#F1AP-PROTOCOL-IES
+Cause N f1ap.ies id-Cause
+CriticalityDiagnostics N f1ap.ies id-CriticalityDiagnostics
+GNB-DU-F1AP-ID N f1ap.ies id-gNB-DU-F1AP-ID
+GNB-CU-F1AP-ID N f1ap.ies id-gNB-CU-F1AP-ID
+ResetType N f1ap.ies id-ResetType
+TimeToWait N f1ap.ies id-TimeToWait
+UE-associatedLogicalF1-ConnectionItem N f1ap.ies id-UE-associatedLogicalF1-ConnectionItem
+UE-associatedLogicalF1-ConnectionListResAck N f1ap.ies id-UE-associatedLogicalF1-ConnectionListResAck
+RRCContainer N f1ap.ies id-RRCContainer
+SRBID N f1ap.ies id-SRBID
+GNB-DU-ID N f1ap.ies id-gNB-DU-ID
+GNB-Name N f1ap.ies id-gNB-Name
+PCI N f1ap.ies id-PCI
+GNB-DU-Served-Cells-List N f1ap.ies id-gNB-DU-Served-Cells-List
+Cells-to-be-Activated-List N f1ap.ies id-Cells-to-be-Activated-List
+Served-Cells-To-Add-List N f1ap.ies id-Served-Cells-To-Add-List
+Served-Cells-To-Modify-List N f1ap.ies id-Served-Cells-To-Modify-List
+Served-Cells-To-Delete-List N f1ap.ies id-Served-Cells-To-Delete-List
+Cells-to-be-Deactivated-List N f1ap.ies id-Cells-to-be-Deactivated-List
+Cells-Failed-to-be-Activated-List N f1ap.ies id-Cells-Failed-to-be-Activated-List
+TransactionID N f1ap.ies id-TransactionID
+Served-Cell-Information N f1ap.ies id-Served-Cell-Information
+GNB-DU-System-Information N f1ap.ies id-gNB-DU-System-Information
+NCGI N f1ap.ies id-NCGI
+NCGI N f1ap.ies id-OldNCGI
+DRBID N f1ap.ies id-DRBID
+NCGI N f1ap.ies id-PSCell-ID
+EUTRANQoS N f1ap.ies id-EUTRANQoS
+SRBs-ToBeSetup-List N f1ap.ies id-SRBs-ToBeSetup-List
+DRBs-ToBeSetup-List N f1ap.ies id-DRBs-ToBeSetup-List
+DLTunnels-ToBeSetup-list N f1ap.ies id-DLTunnels-ToBeSetup-List
+ULTunnels-ToBeSetup-list N f1ap.ies id-ULTunnels-ToBeSetup-List
+GTPTunnelEndpoint N f1ap.ies id-UL-GTP-Tunnel-EndPoint
+GTPTunnelEndpoint N f1ap.ies id-DL-GTP-Tunnel-EndPoint
+CUtoDURRCInformation N f1ap.ies id-CUtoDURRCInformation
+DUtoCURRCInformation N f1ap.ies id-DUtoCURRCInformation
+SCell-ToBeSetup-List N f1ap.ies id-SCell-ToBeSetup-List
+ResourceCoordinationTransferContainer N f1ap.ies id-ResourceCoordinationTransferContainer
+DRBs-ToBeModified-List N f1ap.ies id-DRBs-ToBeModified-List
+DRBs-ToBeReleased-List N f1ap.ies id-DRBs-ToBeReleased-List
+DRBs-Modified-List N f1ap.ies id-DRBs-Modified-List
+DRBs-FailedToBeModified-List N f1ap.ies id-DRBs-FailedToBeModified-List
+NCGI N f1ap.ies id-SCell-ID
+DRXCycle N f1ap.ies id-DRXCycle
+DRBs-Setup-List N f1ap.ies id-DRBs-Setup-List
+SRBs-Setup-List N f1ap.ies id-SRBs-Setup-List
+DRBs-FailedToBeSetup-List N f1ap.ies id-DRBs-FailedToBeSetup-List
+SRBs-FailedToBeSetup-List N f1ap.ies id-SRBs-FailedToBeSetup-List
+DLTunnels-ToBeSetup-list N f1ap.ies id-DLTunnels-ToBeSetup-list
+ULTunnels-ToBeSetup-list N f1ap.ies id-ULTunnels-ToBeSetup-list
+TransmissionStopIndicator N f1ap.ies id-TransmissionStopIndicator
+DRBs-Required-ToBeModified-List N f1ap.ies id-DRBs-Required-ToBeModified-List
+DRBs-Required-ToBeReleased-List N f1ap.ies id-DRBs-Required-ToBeReleased-List
+SRBs-Required-ToBeReleased-List N f1ap.ies id-SRBs-Required-ToBeReleased-List
+GNB-DU-F1AP-ID N f1ap.ies id-oldgNB-DU-F1AP-ID
+SRBs-ToBeReleased-List N f1ap.ies id-SRBs-ToBeReleased-List
+DRBs-ModifiedConf-List N f1ap.ies id-DRBs-ModifiedConf-List
+
+#F1AP-PROTOCOL-EXTENSION
+
+#F1AP-ELEMENTARY-PROCEDURE
+Reset N f1ap.proc.imsg id-Reset
+ResetAcknowledge N f1ap.proc.sout id-Reset
+
+F1SetupRequest N f1ap.proc.imsg id-F1Setup
+F1SetupResponse N f1ap.proc.sout id-F1Setup
+F1SetupFailure N f1ap.proc.uout id-F1Setup
+
+GNBDUConfigurationUpdate N f1ap.proc.imsg id-gNBDUConfigurationUpdate
+GNBDUConfigurationUpdateAcknowledge N f1ap.proc.sout id-gNBDUConfigurationUpdate
+GNBDUConfigurationUpdateFailure N f1ap.proc.uout id-gNBDUConfigurationUpdate
+
+GNBCUConfigurationUpdate N f1ap.proc.imsg id-gNBCUConfigurationUpdate
+GNBCUConfigurationUpdateAcknowledge N f1ap.proc.sout id-gNBCUConfigurationUpdate
+GNBCUConfigurationUpdateFailure N f1ap.proc.uout id-gNBCUConfigurationUpdate
+
+UEContextSetupRequest N f1ap.proc.imsg id-UEContextSetup
+UEContextSetupResponse N f1ap.proc.sout id-UEContextSetup
+UEContextSetupFailure N f1ap.proc.uout id-UEContextSetup
+
+UEContextReleaseCommand N f1ap.proc.imsg id-UEContextRelease
+UEContextReleaseComplete N f1ap.proc.sout id-UEContextRelease
+
+UEContextModificationRequest N f1ap.proc.imsg id-UEContextModification
+UEContextModificationResponse N f1ap.proc.sout id-UEContextModification
+UEContextModificationFailure N f1ap.proc.uout id-UEContextModification
+
+UEContextModificationRequired N f1ap.proc.imsg id-UEContextModificationRequired
+UEContextModificationConfirm N f1ap.proc.sout id-UEContextModificationRequired
+
+ErrorIndication N f1ap.proc.imsg id-ErrorIndication
+
+UEContextReleaseRequest N f1ap.proc.imsg id-UEContextReleaseRequest
+
+DLRRCMessageTransfer N f1ap.proc.imsg id-DLRRCMessageTransfer
+
+ULRRCMessageTransfer N f1ap.proc.imsg id-ULRRCMessageTransfer
+
+PrivateMessage N f1ap.proc.imsg id-privateMessage
+
+
+#.FN_BODY ResourceCoordinationTransferContainer VAL_PTR=&param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree;
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_ResourceCoordinationTransferContainer);
+ switch (f1ap_data->message_type) {
+ case INITIATING_MESSAGE:
+ switch (f1ap_data->procedure_code) {
+ case id_UEContextSetup:
+ case id_UEContextModification:
+ dissect_x2ap_MeNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case id_UEContextModificationRequired:
+ dissect_x2ap_SgNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ default:
+ break;
+ }
+ break;
+ case SUCCESSFUL_OUTCOME:
+ switch (f1ap_data->procedure_code) {
+ case id_UEContextSetup:
+ case id_UEContextModification:
+ dissect_x2ap_SgNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case id_UEContextModificationRequired:
+ dissect_x2ap_MeNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+#.FN_BODY PLMN-Identity VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_PLMN_Identity);
+ dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ }
+
+#.FN_BODY MIB-message VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_MIB_message);
+ dissect_nr_rrc_MIB_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.TYPE_ATTR
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+
+#.FN_BODY SCG-Config-Info VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SCG_Config_Info);
+ dissect_nr_rrc_SCG_ConfigInfo_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY CellGroupConfig VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_CellGroupConfig);
+ dissect_nr_rrc_CellGroupConfig_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY TransportLayerAddress VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree;
+ gint tvb_len;
+
+ tvb_len = tvb_reported_length(param_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_TransportLayerAddress);
+ if (tvb_len == 4) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ } else if (tvb_len == 16) {
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv6, param_tvb, 0, 16, ENC_NA);
+ } else if (tvb_len == 20) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv6, param_tvb, 4, 16, ENC_NA);
+ }
+ }
+
+
+#.FN_HDR Reset
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset");
+#.FN_HDR ResetAcknowledge
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge");
+#.FN_HDR F1SetupRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupRequest");
+#.FN_HDR F1SetupResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupResponse");
+#.FN_HDR F1SetupFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupFailure");
+#.FN_HDR GNBDUConfigurationUpdate
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdate");
+#.FN_HDR GNBDUConfigurationUpdateAcknowledge
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateAcknowledge");
+#.FN_HDR GNBDUConfigurationUpdateFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateFailure");
+#.FN_HDR GNBCUConfigurationUpdate
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdate");
+#.FN_HDR GNBCUConfigurationUpdateAcknowledge
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateAcknowledge");
+#.FN_HDR GNBCUConfigurationUpdateFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateFailure");
+#.FN_HDR UEContextSetupRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupRequest");
+#.FN_HDR UEContextSetupResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupResponse");
+#.FN_HDR UEContextSetupFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupFailure");
+#.FN_HDR UEContextReleaseCommand
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand");
+#.FN_HDR UEContextReleaseComplete
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete");
+#.FN_HDR UEContextModificationRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest");
+#.FN_HDR UEContextModificationResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse");
+#.FN_HDR UEContextModificationFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure");
+#.FN_HDR UEContextModificationRequired
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequired");
+#.FN_HDR UEContextModificationConfirm
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm");
+#.FN_HDR ErrorIndication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
+#.FN_HDR UEContextReleaseRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest");
+#.FN_HDR DLRRCMessageTransfer
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLRRCMessageTransfer");
+#.FN_HDR ULRRCMessageTransfer
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ULRRCMessageTransfer");
+#.FN_HDR PrivateMessage
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
+#.END
+
+#
+# Editor modelines - http://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 2
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=2 tabstop=8 expandtab:
+# :indentSize=2:tabSize=8:noTabs=true:
+#
diff --git a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
new file mode 100644
index 0000000000..054575e846
--- /dev/null
+++ b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
@@ -0,0 +1,235 @@
+/* packet-f1ap.c
+ * Routines for E-UTRAN F1 Application Protocol (F1AP) 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
+ *
+ * References: 3GPP TS 38.473 V15.0.0 (2017-12)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+#include <epan/sctpppids.h>
+#include <epan/proto_data.h>
+
+#include "packet-per.h"
+#include "packet-x2ap.h"
+#include "packet-nr-rrc.h"
+#include "packet-e212.h"
+
+#define PNAME "F1 Application Protocol"
+#define PSNAME "F1AP"
+#define PFNAME "f1ap"
+
+#define SCTP_PORT_F1AP 38472
+
+void proto_register_f1ap(void);
+void proto_reg_handoff_f1ap(void);
+
+#include "packet-f1ap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_f1ap = -1;
+
+static int hf_f1ap_transportLayerAddressIPv4 = -1;
+static int hf_f1ap_transportLayerAddressIPv6 = -1;
+#include "packet-f1ap-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_f1ap = -1;
+static gint ett_f1ap_ResourceCoordinationTransferContainer = -1;
+static gint ett_f1ap_PLMN_Identity = -1;
+static gint ett_f1ap_MIB_message = -1;
+static gint ett_f1ap_SCG_Config_Info = -1;
+static gint ett_f1ap_CellGroupConfig = -1;
+static gint ett_f1ap_TransportLayerAddress = -1;
+#include "packet-f1ap-ett.c"
+
+enum{
+ INITIATING_MESSAGE,
+ SUCCESSFUL_OUTCOME,
+ UNSUCCESSFUL_OUTCOME
+};
+
+typedef struct {
+ guint32 message_type;
+ guint32 procedure_code;
+ guint32 protocol_ie_id;
+ guint32 protocol_extension_id;
+ const char *obj_id;
+} f1ap_private_data_t;
+
+typedef struct {
+ guint32 message_type;
+ guint32 ProcedureCode;
+ guint32 ProtocolIE_ID;
+ guint32 ProtocolExtensionID;
+} f1ap_ctx_t;
+
+/* Global variables */
+static dissector_handle_t f1ap_handle;
+
+/* Dissector tables */
+static dissector_table_t f1ap_ies_dissector_table;
+static dissector_table_t f1ap_extension_dissector_table;
+static dissector_table_t f1ap_proc_imsg_dissector_table;
+static dissector_table_t f1ap_proc_sout_dissector_table;
+static dissector_table_t f1ap_proc_uout_dissector_table;
+
+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 f1ap_private_data_t*
+f1ap_get_private_data(packet_info *pinfo)
+{
+ f1ap_private_data_t *f1ap_data = (f1ap_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_f1ap, 0);
+ if (!f1ap_data) {
+ f1ap_data = wmem_new0(pinfo->pool, f1ap_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_f1ap, 0, f1ap_data);
+ }
+ return f1ap_data;
+}
+
+#include "packet-f1ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ f1ap_ctx_t f1ap_ctx;
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ f1ap_ctx.message_type = f1ap_data->message_type;
+ f1ap_ctx.ProcedureCode = f1ap_data->procedure_code;
+ f1ap_ctx.ProtocolIE_ID = f1ap_data->protocol_ie_id;
+ f1ap_ctx.ProtocolExtensionID = f1ap_data->protocol_extension_id;
+
+ return (dissector_try_uint_new(f1ap_ies_dissector_table, f1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ f1ap_ctx_t f1ap_ctx;
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ f1ap_ctx.message_type = f1ap_data->message_type;
+ f1ap_ctx.ProcedureCode = f1ap_data->procedure_code;
+ f1ap_ctx.ProtocolIE_ID = f1ap_data->protocol_ie_id;
+ f1ap_ctx.ProtocolExtensionID = f1ap_data->protocol_extension_id;
+
+ return (dissector_try_uint_new(f1ap_extension_dissector_table, f1ap_data->protocol_extension_id, tvb, pinfo, tree, FALSE, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(f1ap_proc_imsg_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(f1ap_proc_sout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(f1ap_proc_uout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_f1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *f1ap_item = NULL;
+ proto_tree *f1ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "F1AP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* create the f1ap protocol tree */
+ f1ap_item = proto_tree_add_item(tree, proto_f1ap, tvb, 0, -1, ENC_NA);
+ f1ap_tree = proto_item_add_subtree(f1ap_item, ett_f1ap);
+
+ dissect_F1AP_PDU_PDU(tvb, pinfo, f1ap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+void proto_register_f1ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_f1ap_transportLayerAddressIPv4,
+ { "IPv4 transportLayerAddress", "f1ap.transportLayerAddressIPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_transportLayerAddressIPv6,
+ { "IPv6 transportLayerAddress", "f1ap.transportLayerAddressIPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-f1ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_f1ap,
+ &ett_f1ap_ResourceCoordinationTransferContainer,
+ &ett_f1ap_PLMN_Identity,
+ &ett_f1ap_MIB_message,
+ &ett_f1ap_SCG_Config_Info,
+ &ett_f1ap_CellGroupConfig,
+ &ett_f1ap_TransportLayerAddress,
+#include "packet-f1ap-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_f1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_f1ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ f1ap_handle = register_dissector("f1ap", dissect_f1ap, proto_f1ap);
+
+ /* Register dissector tables */
+ f1ap_ies_dissector_table = register_dissector_table("f1ap.ies", "F1AP-PROTOCOL-IES", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_extension_dissector_table = register_dissector_table("f1ap.extension", "F1AP-PROTOCOL-EXTENSION", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_proc_imsg_dissector_table = register_dissector_table("f1ap.proc.imsg", "F1AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_proc_sout_dissector_table = register_dissector_table("f1ap.proc.sout", "F1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_proc_uout_dissector_table = register_dissector_table("f1ap.proc.uout", "F1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_f1ap, FT_UINT32, BASE_DEC);
+}
+
+void
+proto_reg_handoff_f1ap(void)
+{
+ dissector_add_uint_with_preference("sctp.port", SCTP_PORT_F1AP, f1ap_handle);
+ dissector_add_uint("sctp.ppi", F1AP_PROTOCOL_ID, f1ap_handle);
+#include "packet-f1ap-dis-tab.c"
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
index 62411e04e3..6d2d1e2903 100644
--- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
+++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
@@ -27,7 +27,9 @@ T-Reassembly
T-StatusProhibit
#.EXPORTS
+CellGroupConfig_PDU
MeasResults_PDU
+MIB_PDU
SCG-ConfigInfo_PDU
RadioBearerConfig_PDU
RRCReconfiguration_PDU
@@ -38,7 +40,9 @@ UE-NR-Capability_PDU
#.PDU
BCCH-BCH-Message @bcch.bch
+CellGroupConfig
DL-DCCH-Message @dl.dcch
+MIB
MeasResults
RadioBearerConfig
RRCReconfiguration
diff --git a/epan/dissectors/asn1/x2ap/CMakeLists.txt b/epan/dissectors/asn1/x2ap/CMakeLists.txt
index d9e4b6b226..a858ff93aa 100644
--- a/epan/dissectors/asn1/x2ap/CMakeLists.txt
+++ b/epan/dissectors/asn1/x2ap/CMakeLists.txt
@@ -26,6 +26,7 @@ set( ASN_FILE_LIST
set( EXTRA_DIST
${ASN_FILE_LIST}
packet-${PROTOCOL_NAME}-template.c
+ packet-${PROTOCOL_NAME}-template.h
${PROTOCOL_NAME}.cnf
)
diff --git a/epan/dissectors/asn1/x2ap/Makefile.am b/epan/dissectors/asn1/x2ap/Makefile.am
index d0da63a6d5..f934a38bfa 100644
--- a/epan/dissectors/asn1/x2ap/Makefile.am
+++ b/epan/dissectors/asn1/x2ap/Makefile.am
@@ -22,6 +22,7 @@ EXTRA_DIST = \
$(EXTRA_DIST_COMMON) \
$(ASN_FILE_LIST) \
packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
$(PROTOCOL_NAME).cnf
SRC_FILES = \
diff --git a/epan/dissectors/asn1/x2ap/packet-x2ap-template.h b/epan/dissectors/asn1/x2ap/packet-x2ap-template.h
new file mode 100644
index 0000000000..6fdb557947
--- /dev/null
+++ b/epan/dissectors/asn1/x2ap/packet-x2ap-template.h
@@ -0,0 +1,29 @@
+/* packet-x2ap.h
+ * Routines for E-UTRAN X2 Application Protocol (S1AP) packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef PACKET_X2AP_H
+#define PACKET_X2AP_H
+
+#include "packet-x2ap-exp.h"
+
+#endif /* PACKET_X2AP_H */
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/asn1/x2ap/x2ap.cnf b/epan/dissectors/asn1/x2ap/x2ap.cnf
index e19e55ed25..ed6290bcba 100644
--- a/epan/dissectors/asn1/x2ap/x2ap.cnf
+++ b/epan/dissectors/asn1/x2ap/x2ap.cnf
@@ -25,6 +25,14 @@ ProcedureCode
ProtocolIE-ID
OffsetOfNbiotChannelNumberToEARFCN
+#.EXPORTS
+MeNBResourceCoordinationInformation_PDU
+SgNBResourceCoordinationInformation_PDU
+
+#.PDU
+MeNBResourceCoordinationInformation
+SgNBResourceCoordinationInformation
+
#.TYPE_RENAME
ProtocolIE-Field/value ProtocolIE_Field_value
PrivateIE-Field/value PrivateIE_Field_value
diff --git a/epan/dissectors/packet-f1ap.c b/epan/dissectors/packet-f1ap.c
new file mode 100644
index 0000000000..432dbadeaa
--- /dev/null
+++ b/epan/dissectors/packet-f1ap.c
@@ -0,0 +1,4371 @@
+/* Do not modify this file. Changes will be overwritten. */
+/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
+/* packet-f1ap.c */
+/* asn2wrs.py -p f1ap -c ./f1ap.cnf -s ./packet-f1ap-template -D . -O ../.. F1AP-CommonDataTypes.asn F1AP-Constants.asn F1AP-Containers.asn F1AP-IEs.asn F1AP-PDU-Contents.asn F1AP-PDU-Descriptions.asn */
+
+/* Input file: packet-f1ap-template.c */
+
+#line 1 "./asn1/f1ap/packet-f1ap-template.c"
+/* packet-f1ap.c
+ * Routines for E-UTRAN F1 Application Protocol (F1AP) 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
+ *
+ * References: 3GPP TS 38.473 V15.0.0 (2017-12)
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#include <epan/asn1.h>
+#include <epan/sctpppids.h>
+#include <epan/proto_data.h>
+
+#include "packet-per.h"
+#include "packet-x2ap.h"
+#include "packet-nr-rrc.h"
+#include "packet-e212.h"
+
+#define PNAME "F1 Application Protocol"
+#define PSNAME "F1AP"
+#define PFNAME "f1ap"
+
+#define SCTP_PORT_F1AP 38472
+
+void proto_register_f1ap(void);
+void proto_reg_handoff_f1ap(void);
+
+
+/*--- Included file: packet-f1ap-val.h ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-val.h"
+#define maxPrivateIEs 65535
+#define maxProtocolExtensions 65535
+#define maxProtocolIEs 65535
+#define maxnoofErrors 256
+#define maxnoofIndividualF1ConnectionsToReset 256
+#define maxCellingNBDU 512
+#define maxnoofSCells 64
+#define maxnoofSRBs 8
+#define maxnoofDRBs 64
+#define maxnoofULTunnels 2
+#define maxnoofDLTunnels 2
+#define maxnoofBPLMNs 6
+
+typedef enum _ProcedureCode_enum {
+ id_Reset = 0,
+ id_F1Setup = 1,
+ id_ErrorIndication = 2,
+ id_gNBDUConfigurationUpdate = 3,
+ id_gNBCUConfigurationUpdate = 4,
+ id_UEContextSetup = 5,
+ id_UEContextRelease = 6,
+ id_UEContextModification = 7,
+ id_UEContextModificationRequired = 8,
+ id_UEMobilityCommand = 9,
+ id_UEContextReleaseRequest = 10,
+ id_InitialULRRCMessageTransfer = 11,
+ id_DLRRCMessageTransfer = 12,
+ id_ULRRCMessageTransfer = 13,
+ id_SystemInformationDelivery = 14,
+ id_Paging = 15
+} ProcedureCode_enum;
+
+typedef enum _ProtocolIE_ID_enum {
+ id_Cause = 0,
+ id_CriticalityDiagnostics = 1,
+ id_gNB_DU_F1AP_ID = 2,
+ id_gNB_CU_F1AP_ID = 3,
+ id_ResetType = 4,
+ id_TimeToWait = 5,
+ id_UE_associatedLogicalF1_ConnectionItem = 6,
+ id_UE_associatedLogicalF1_ConnectionListResAck = 7,
+ id_RRCContainer = 8,
+ id_SRBID = 9,
+ id_gNB_DU_ID = 10,
+ id_gNB_Name = 11,
+ id_NRCellID = 12,
+ id_PCI = 13,
+ id_gNB_DU_Served_Cells_List = 14,
+ id_Cells_to_be_Activated_List = 15,
+ id_Served_Cells_To_Add_List = 16,
+ id_Served_Cells_To_Modify_List = 17,
+ id_Served_Cells_To_Delete_List = 18,
+ id_Cells_to_be_Deactivated_List = 19,
+ id_Cells_Failed_to_be_Activated_List = 20,
+ id_TransactionID = 21,
+ id_Served_Cell_Information = 22,
+ id_gNB_DU_System_Information = 23,
+ id_NCGI = 24,
+ id_gNB_CU_System_Information = 25,
+ id_OldNCGI = 26,
+ id_DRBID = 27,
+ id_PSCell_ID = 28,
+ id_EUTRANQoS = 29,
+ id_SRBs_ToBeSetup_List = 30,
+ id_DRBs_ToBeSetup_List = 31,
+ id_DLTunnels_ToBeSetup_List = 32,
+ id_ULTunnels_ToBeSetup_List = 33,
+ id_UL_GTP_Tunnel_EndPoint = 34,
+ id_DL_GTP_Tunnel_EndPoint = 35,
+ id_CUtoDURRCInformation = 36,
+ id_DUtoCURRCInformation = 37,
+ id_UERadioCapability = 38,
+ id_UEAggregateMaximumBitRate = 39,
+ id_SCell_ToBeSetup_List = 40,
+ id_ResourceCoordinationTransferContainer = 41,
+ id_DRBs_ToBeModified_List = 42,
+ id_DRBs_ToBeReleased_List = 43,
+ id_DRBs_Modified_List = 44,
+ id_DRBs_FailedToSetup_List = 45,
+ id_DRBs_FailedToBeModified_List = 46,
+ id_SCell_ID = 47,
+ id_DRXCycle = 48,
+ id_DRBs_Setup_List = 49,
+ id_SRBs_Setup_List = 50,
+ id_DRBs_FailedToBeSetup_List = 51,
+ id_SRBs_FailedToBeSetup_List = 52,
+ id_DLTunnels_ToBeSetup_list = 53,
+ id_ULTunnels_ToBeSetup_list = 54,
+ id_TransmissionStopIndicator = 55,
+ id_DRBs_Required_ToBeModified_List = 56,
+ id_DRBs_Required_ToBeReleased_List = 57,
+ id_SRBs_Required_ToBeReleased_List = 58,
+ id_oldgNB_DU_F1AP_ID = 59,
+ id_SRBs_ToBeReleased_List = 60,
+ id_DRBs_ModifiedConf_List = 61,
+ id_privateMessage = 62
+} ProtocolIE_ID_enum;
+
+/*--- End of included file: packet-f1ap-val.h ---*/
+#line 37 "./asn1/f1ap/packet-f1ap-template.c"
+
+/* Initialize the protocol and registered fields */
+static int proto_f1ap = -1;
+
+static int hf_f1ap_transportLayerAddressIPv4 = -1;
+static int hf_f1ap_transportLayerAddressIPv6 = -1;
+
+/*--- Included file: packet-f1ap-hf.c ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-hf.c"
+static int hf_f1ap_Cause_PDU = -1; /* Cause */
+static int hf_f1ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
+static int hf_f1ap_CUtoDURRCInformation_PDU = -1; /* CUtoDURRCInformation */
+static int hf_f1ap_DRBID_PDU = -1; /* DRBID */
+static int hf_f1ap_DRXCycle_PDU = -1; /* DRXCycle */
+static int hf_f1ap_DUtoCURRCInformation_PDU = -1; /* DUtoCURRCInformation */
+static int hf_f1ap_EUTRANQoS_PDU = -1; /* EUTRANQoS */
+static int hf_f1ap_GNB_CU_F1AP_ID_PDU = -1; /* GNB_CU_F1AP_ID */
+static int hf_f1ap_GNB_DU_F1AP_ID_PDU = -1; /* GNB_DU_F1AP_ID */
+static int hf_f1ap_GNB_DU_ID_PDU = -1; /* GNB_DU_ID */
+static int hf_f1ap_GNB_DU_System_Information_PDU = -1; /* GNB_DU_System_Information */
+static int hf_f1ap_GTPTunnelEndpoint_PDU = -1; /* GTPTunnelEndpoint */
+static int hf_f1ap_NCGI_PDU = -1; /* NCGI */
+static int hf_f1ap_PCI_PDU = -1; /* PCI */
+static int hf_f1ap_RRCContainer_PDU = -1; /* RRCContainer */
+static int hf_f1ap_Served_Cell_Information_PDU = -1; /* Served_Cell_Information */
+static int hf_f1ap_SRBID_PDU = -1; /* SRBID */
+static int hf_f1ap_TimeToWait_PDU = -1; /* TimeToWait */
+static int hf_f1ap_TransactionID_PDU = -1; /* TransactionID */
+static int hf_f1ap_TransmissionStopIndicator_PDU = -1; /* TransmissionStopIndicator */
+static int hf_f1ap_UE_associatedLogicalF1_ConnectionItem_PDU = -1; /* UE_associatedLogicalF1_ConnectionItem */
+static int hf_f1ap_Reset_PDU = -1; /* Reset */
+static int hf_f1ap_ResetType_PDU = -1; /* ResetType */
+static int hf_f1ap_ResetAcknowledge_PDU = -1; /* ResetAcknowledge */
+static int hf_f1ap_UE_associatedLogicalF1_ConnectionListResAck_PDU = -1; /* UE_associatedLogicalF1_ConnectionListResAck */
+static int hf_f1ap_ErrorIndication_PDU = -1; /* ErrorIndication */
+static int hf_f1ap_F1SetupRequest_PDU = -1; /* F1SetupRequest */
+static int hf_f1ap_GNB_DU_Served_Cells_List_PDU = -1; /* GNB_DU_Served_Cells_List */
+static int hf_f1ap_GNB_Name_PDU = -1; /* GNB_Name */
+static int hf_f1ap_F1SetupResponse_PDU = -1; /* F1SetupResponse */
+static int hf_f1ap_Cells_to_be_Activated_List_PDU = -1; /* Cells_to_be_Activated_List */
+static int hf_f1ap_F1SetupFailure_PDU = -1; /* F1SetupFailure */
+static int hf_f1ap_GNBDUConfigurationUpdate_PDU = -1; /* GNBDUConfigurationUpdate */
+static int hf_f1ap_Served_Cells_To_Add_List_PDU = -1; /* Served_Cells_To_Add_List */
+static int hf_f1ap_Served_Cells_To_Modify_List_PDU = -1; /* Served_Cells_To_Modify_List */
+static int hf_f1ap_Served_Cells_To_Delete_List_PDU = -1; /* Served_Cells_To_Delete_List */
+static int hf_f1ap_GNBDUConfigurationUpdateAcknowledge_PDU = -1; /* GNBDUConfigurationUpdateAcknowledge */
+static int hf_f1ap_GNBDUConfigurationUpdateFailure_PDU = -1; /* GNBDUConfigurationUpdateFailure */
+static int hf_f1ap_GNBCUConfigurationUpdate_PDU = -1; /* GNBCUConfigurationUpdate */
+static int hf_f1ap_Cells_to_be_Deactivated_List_PDU = -1; /* Cells_to_be_Deactivated_List */
+static int hf_f1ap_GNBCUConfigurationUpdateAcknowledge_PDU = -1; /* GNBCUConfigurationUpdateAcknowledge */
+static int hf_f1ap_Cells_Failed_to_be_Activated_List_PDU = -1; /* Cells_Failed_to_be_Activated_List */
+static int hf_f1ap_GNBCUConfigurationUpdateFailure_PDU = -1; /* GNBCUConfigurationUpdateFailure */
+static int hf_f1ap_UEContextSetupRequest_PDU = -1; /* UEContextSetupRequest */
+static int hf_f1ap_SCell_ToBeSetup_List_PDU = -1; /* SCell_ToBeSetup_List */
+static int hf_f1ap_SRBs_ToBeSetup_List_PDU = -1; /* SRBs_ToBeSetup_List */
+static int hf_f1ap_DRBs_ToBeSetup_List_PDU = -1; /* DRBs_ToBeSetup_List */
+static int hf_f1ap_ResourceCoordinationTransferContainer_PDU = -1; /* ResourceCoordinationTransferContainer */
+static int hf_f1ap_ULTunnels_ToBeSetup_list_PDU = -1; /* ULTunnels_ToBeSetup_list */
+static int hf_f1ap_UEContextSetupResponse_PDU = -1; /* UEContextSetupResponse */
+static int hf_f1ap_SRBs_Setup_List_PDU = -1; /* SRBs_Setup_List */
+static int hf_f1ap_DRBs_Setup_List_PDU = -1; /* DRBs_Setup_List */
+static int hf_f1ap_SRBs_FailedToBeSetup_List_PDU = -1; /* SRBs_FailedToBeSetup_List */
+static int hf_f1ap_DRBs_FailedToBeSetup_List_PDU = -1; /* DRBs_FailedToBeSetup_List */
+static int hf_f1ap_DLTunnels_ToBeSetup_list_PDU = -1; /* DLTunnels_ToBeSetup_list */
+static int hf_f1ap_UEContextSetupFailure_PDU = -1; /* UEContextSetupFailure */
+static int hf_f1ap_UEContextReleaseRequest_PDU = -1; /* UEContextReleaseRequest */
+static int hf_f1ap_UEContextReleaseCommand_PDU = -1; /* UEContextReleaseCommand */
+static int hf_f1ap_UEContextReleaseComplete_PDU = -1; /* UEContextReleaseComplete */
+static int hf_f1ap_UEContextModificationRequest_PDU = -1; /* UEContextModificationRequest */
+static int hf_f1ap_DRBs_ToBeModified_List_PDU = -1; /* DRBs_ToBeModified_List */
+static int hf_f1ap_SRBs_ToBeReleased_List_PDU = -1; /* SRBs_ToBeReleased_List */
+static int hf_f1ap_DRBs_ToBeReleased_List_PDU = -1; /* DRBs_ToBeReleased_List */
+static int hf_f1ap_UEContextModificationResponse_PDU = -1; /* UEContextModificationResponse */
+static int hf_f1ap_DRBs_Modified_List_PDU = -1; /* DRBs_Modified_List */
+static int hf_f1ap_DRBs_FailedToBeModified_List_PDU = -1; /* DRBs_FailedToBeModified_List */
+static int hf_f1ap_UEContextModificationFailure_PDU = -1; /* UEContextModificationFailure */
+static int hf_f1ap_UEContextModificationRequired_PDU = -1; /* UEContextModificationRequired */
+static int hf_f1ap_DRBs_Required_ToBeModified_List_PDU = -1; /* DRBs_Required_ToBeModified_List */
+static int hf_f1ap_DRBs_Required_ToBeReleased_List_PDU = -1; /* DRBs_Required_ToBeReleased_List */
+static int hf_f1ap_SRBs_Required_ToBeReleased_List_PDU = -1; /* SRBs_Required_ToBeReleased_List */
+static int hf_f1ap_UEContextModificationConfirm_PDU = -1; /* UEContextModificationConfirm */
+static int hf_f1ap_DRBs_ModifiedConf_List_PDU = -1; /* DRBs_ModifiedConf_List */
+static int hf_f1ap_DLRRCMessageTransfer_PDU = -1; /* DLRRCMessageTransfer */
+static int hf_f1ap_ULRRCMessageTransfer_PDU = -1; /* ULRRCMessageTransfer */
+static int hf_f1ap_PrivateMessage_PDU = -1; /* PrivateMessage */
+static int hf_f1ap_F1AP_PDU_PDU = -1; /* F1AP_PDU */
+static int hf_f1ap_local = -1; /* INTEGER_0_65535 */
+static int hf_f1ap_global = -1; /* T_global */
+static int hf_f1ap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
+static int hf_f1ap_id = -1; /* ProtocolIE_ID */
+static int hf_f1ap_criticality = -1; /* Criticality */
+static int hf_f1ap_ie_field_value = -1; /* T_ie_field_value */
+static int hf_f1ap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */
+static int hf_f1ap_ext_id = -1; /* ProtocolExtensionID */
+static int hf_f1ap_extensionValue = -1; /* T_extensionValue */
+static int hf_f1ap_PrivateIE_Container_item = -1; /* PrivateIE_Field */
+static int hf_f1ap_private_id = -1; /* PrivateIE_ID */
+static int hf_f1ap_value = -1; /* T_value */
+static int hf_f1ap_priorityLevel = -1; /* PriorityLevel */
+static int hf_f1ap_pre_emptionCapability = -1; /* Pre_emptionCapability */
+static int hf_f1ap_pre_emptionVulnerability = -1; /* Pre_emptionVulnerability */
+static int hf_f1ap_iE_Extensions = -1; /* ProtocolExtensionContainer */
+static int hf_f1ap_BroadcastPLMNs_Item_item = -1; /* PLMN_Identity */
+static int hf_f1ap_radioNetwork = -1; /* CauseRadioNetwork */
+static int hf_f1ap_transport = -1; /* CauseTransport */
+static int hf_f1ap_protocol = -1; /* CauseProtocol */
+static int hf_f1ap_misc = -1; /* CauseMisc */
+static int hf_f1ap_procedureCode = -1; /* ProcedureCode */
+static int hf_f1ap_triggeringMessage = -1; /* TriggeringMessage */
+static int hf_f1ap_procedureCriticality = -1; /* Criticality */
+static int hf_f1ap_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */
+static int hf_f1ap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_Item */
+static int hf_f1ap_iECriticality = -1; /* Criticality */
+static int hf_f1ap_iE_ID = -1; /* ProtocolIE_ID */
+static int hf_f1ap_typeOfError = -1; /* TypeOfError */
+static int hf_f1ap_sCG_Config_Info = -1; /* SCG_Config_Info */
+static int hf_f1ap_uERadiocapabilities = -1; /* UERadiocapabilities */
+static int hf_f1ap_longDRXCycleLength = -1; /* LongDRXCycleLength */
+static int hf_f1ap_shortDRXCycleLength = -1; /* ShortDRXCycleLength */
+static int hf_f1ap_shortDRXCycleTimer = -1; /* ShortDRXCycleTimer */
+static int hf_f1ap_cellGroupConfig = -1; /* CellGroupConfig */
+static int hf_f1ap_qCI = -1; /* QCI */
+static int hf_f1ap_allocationAndRetentionPriority = -1; /* AllocationAndRetentionPriority */
+static int hf_f1ap_gbrQosInformation = -1; /* GBR_QosInformation */
+static int hf_f1ap_uL_NARFCN = -1; /* NARFCN */
+static int hf_f1ap_dL_NARFCN = -1; /* NARFCN */
+static int hf_f1ap_uL_Transmission_Bandwidth = -1; /* Transmission_Bandwidth */
+static int hf_f1ap_dL_Transmission_Bandwidth = -1; /* Transmission_Bandwidth */
+static int hf_f1ap_e_RAB_MaximumBitrateDL = -1; /* BitRate */
+static int hf_f1ap_e_RAB_MaximumBitrateUL = -1; /* BitRate */
+static int hf_f1ap_e_RAB_GuaranteedBitrateDL = -1; /* BitRate */
+static int hf_f1ap_e_RAB_GuaranteedBitrateUL = -1; /* BitRate */
+static int hf_f1ap_mIB_message = -1; /* MIB_message */
+static int hf_f1ap_sIB1_message = -1; /* SIB1_message */
+static int hf_f1ap_transportLayerAddress = -1; /* TransportLayerAddress */
+static int hf_f1ap_gTP_TEID = -1; /* GTP_TEID */
+static int hf_f1ap_pLMN_Identity = -1; /* PLMN_Identity */
+static int hf_f1ap_nRCellIdentity = -1; /* NRCellIdentity */
+static int hf_f1ap_fDD = -1; /* FDD_Info */
+static int hf_f1ap_tDD = -1; /* TDD_Info */
+static int hf_f1ap_nCGI = -1; /* NCGI */
+static int hf_f1ap_pCI = -1; /* PCI */
+static int hf_f1ap_broadcastPLMNs = -1; /* BroadcastPLMNs_Item */
+static int hf_f1ap_nR_Mode_Info = -1; /* NR_Mode_Info */
+static int hf_f1ap_nARFCN = -1; /* NARFCN */
+static int hf_f1ap_transmission_Bandwidth = -1; /* Transmission_Bandwidth */
+static int hf_f1ap_gNB_CU_F1AP_ID = -1; /* GNB_CU_F1AP_ID */
+static int hf_f1ap_gNB_DU_F1AP_ID = -1; /* GNB_DU_F1AP_ID */
+static int hf_f1ap_protocolIEs = -1; /* ProtocolIE_Container */
+static int hf_f1ap_f1_Interface = -1; /* ResetAll */
+static int hf_f1ap_partOfF1_Interface = -1; /* UE_associatedLogicalF1_ConnectionListRes */
+static int hf_f1ap_UE_associatedLogicalF1_ConnectionListRes_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_UE_associatedLogicalF1_ConnectionListResAck_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_GNB_DU_Served_Cells_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_Cells_to_be_Activated_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_Served_Cells_To_Add_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_Served_Cells_To_Modify_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_Served_Cells_To_Delete_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_Cells_to_be_Deactivated_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_Cells_Failed_to_be_Activated_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_SCell_ToBeSetup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_SRBs_ToBeSetup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_ToBeSetup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_ULTunnels_ToBeSetup_list_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_SRBs_Setup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_Setup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_SRBs_FailedToBeSetup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_FailedToBeSetup_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DLTunnels_ToBeSetup_list_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_ToBeModified_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_SRBs_ToBeReleased_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_ToBeReleased_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_Modified_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_FailedToBeModified_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_Required_ToBeModified_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_Required_ToBeReleased_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_SRBs_Required_ToBeReleased_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_DRBs_ModifiedConf_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_f1ap_privateIEs = -1; /* PrivateIE_Container */
+static int hf_f1ap_initiatingMessage = -1; /* InitiatingMessage */
+static int hf_f1ap_successfulOutcome = -1; /* SuccessfulOutcome */
+static int hf_f1ap_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */
+static int hf_f1ap_initiatingMessagevalue = -1; /* InitiatingMessage_value */
+static int hf_f1ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
+static int hf_f1ap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
+
+/*--- End of included file: packet-f1ap-hf.c ---*/
+#line 44 "./asn1/f1ap/packet-f1ap-template.c"
+
+/* Initialize the subtree pointers */
+static gint ett_f1ap = -1;
+static gint ett_f1ap_ResourceCoordinationTransferContainer = -1;
+static gint ett_f1ap_PLMN_Identity = -1;
+static gint ett_f1ap_MIB_message = -1;
+static gint ett_f1ap_SCG_Config_Info = -1;
+static gint ett_f1ap_CellGroupConfig = -1;
+static gint ett_f1ap_TransportLayerAddress = -1;
+
+/*--- Included file: packet-f1ap-ett.c ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-ett.c"
+static gint ett_f1ap_PrivateIE_ID = -1;
+static gint ett_f1ap_ProtocolIE_Container = -1;
+static gint ett_f1ap_ProtocolIE_Field = -1;
+static gint ett_f1ap_ProtocolExtensionContainer = -1;
+static gint ett_f1ap_ProtocolExtensionField = -1;
+static gint ett_f1ap_PrivateIE_Container = -1;
+static gint ett_f1ap_PrivateIE_Field = -1;
+static gint ett_f1ap_AllocationAndRetentionPriority = -1;
+static gint ett_f1ap_BroadcastPLMNs_Item = -1;
+static gint ett_f1ap_Cause = -1;
+static gint ett_f1ap_CriticalityDiagnostics = -1;
+static gint ett_f1ap_CriticalityDiagnostics_IE_List = -1;
+static gint ett_f1ap_CriticalityDiagnostics_IE_Item = -1;
+static gint ett_f1ap_CUtoDURRCInformation = -1;
+static gint ett_f1ap_DRXCycle = -1;
+static gint ett_f1ap_DUtoCURRCInformation = -1;
+static gint ett_f1ap_EUTRANQoS = -1;
+static gint ett_f1ap_FDD_Info = -1;
+static gint ett_f1ap_GBR_QosInformation = -1;
+static gint ett_f1ap_GNB_DU_System_Information = -1;
+static gint ett_f1ap_GTPTunnelEndpoint = -1;
+static gint ett_f1ap_NCGI = -1;
+static gint ett_f1ap_NR_Mode_Info = -1;
+static gint ett_f1ap_Served_Cell_Information = -1;
+static gint ett_f1ap_TDD_Info = -1;
+static gint ett_f1ap_UE_associatedLogicalF1_ConnectionItem = -1;
+static gint ett_f1ap_Reset = -1;
+static gint ett_f1ap_ResetType = -1;
+static gint ett_f1ap_UE_associatedLogicalF1_ConnectionListRes = -1;
+static gint ett_f1ap_ResetAcknowledge = -1;
+static gint ett_f1ap_UE_associatedLogicalF1_ConnectionListResAck = -1;
+static gint ett_f1ap_ErrorIndication = -1;
+static gint ett_f1ap_F1SetupRequest = -1;
+static gint ett_f1ap_GNB_DU_Served_Cells_List = -1;
+static gint ett_f1ap_F1SetupResponse = -1;
+static gint ett_f1ap_Cells_to_be_Activated_List = -1;
+static gint ett_f1ap_F1SetupFailure = -1;
+static gint ett_f1ap_GNBDUConfigurationUpdate = -1;
+static gint ett_f1ap_Served_Cells_To_Add_List = -1;
+static gint ett_f1ap_Served_Cells_To_Modify_List = -1;
+static gint ett_f1ap_Served_Cells_To_Delete_List = -1;
+static gint ett_f1ap_GNBDUConfigurationUpdateAcknowledge = -1;
+static gint ett_f1ap_GNBDUConfigurationUpdateFailure = -1;
+static gint ett_f1ap_GNBCUConfigurationUpdate = -1;
+static gint ett_f1ap_Cells_to_be_Deactivated_List = -1;
+static gint ett_f1ap_GNBCUConfigurationUpdateAcknowledge = -1;
+static gint ett_f1ap_Cells_Failed_to_be_Activated_List = -1;
+static gint ett_f1ap_GNBCUConfigurationUpdateFailure = -1;
+static gint ett_f1ap_UEContextSetupRequest = -1;
+static gint ett_f1ap_SCell_ToBeSetup_List = -1;
+static gint ett_f1ap_SRBs_ToBeSetup_List = -1;
+static gint ett_f1ap_DRBs_ToBeSetup_List = -1;
+static gint ett_f1ap_ULTunnels_ToBeSetup_list = -1;
+static gint ett_f1ap_UEContextSetupResponse = -1;
+static gint ett_f1ap_SRBs_Setup_List = -1;
+static gint ett_f1ap_DRBs_Setup_List = -1;
+static gint ett_f1ap_SRBs_FailedToBeSetup_List = -1;
+static gint ett_f1ap_DRBs_FailedToBeSetup_List = -1;
+static gint ett_f1ap_DLTunnels_ToBeSetup_list = -1;
+static gint ett_f1ap_UEContextSetupFailure = -1;
+static gint ett_f1ap_UEContextReleaseRequest = -1;
+static gint ett_f1ap_UEContextReleaseCommand = -1;
+static gint ett_f1ap_UEContextReleaseComplete = -1;
+static gint ett_f1ap_UEContextModificationRequest = -1;
+static gint ett_f1ap_DRBs_ToBeModified_List = -1;
+static gint ett_f1ap_SRBs_ToBeReleased_List = -1;
+static gint ett_f1ap_DRBs_ToBeReleased_List = -1;
+static gint ett_f1ap_UEContextModificationResponse = -1;
+static gint ett_f1ap_DRBs_Modified_List = -1;
+static gint ett_f1ap_DRBs_FailedToBeModified_List = -1;
+static gint ett_f1ap_UEContextModificationFailure = -1;
+static gint ett_f1ap_UEContextModificationRequired = -1;
+static gint ett_f1ap_DRBs_Required_ToBeModified_List = -1;
+static gint ett_f1ap_DRBs_Required_ToBeReleased_List = -1;
+static gint ett_f1ap_SRBs_Required_ToBeReleased_List = -1;
+static gint ett_f1ap_UEContextModificationConfirm = -1;
+static gint ett_f1ap_DRBs_ModifiedConf_List = -1;
+static gint ett_f1ap_DLRRCMessageTransfer = -1;
+static gint ett_f1ap_ULRRCMessageTransfer = -1;
+static gint ett_f1ap_PrivateMessage = -1;
+static gint ett_f1ap_F1AP_PDU = -1;
+static gint ett_f1ap_InitiatingMessage = -1;
+static gint ett_f1ap_SuccessfulOutcome = -1;
+static gint ett_f1ap_UnsuccessfulOutcome = -1;
+
+/*--- End of included file: packet-f1ap-ett.c ---*/
+#line 54 "./asn1/f1ap/packet-f1ap-template.c"
+
+enum{
+ INITIATING_MESSAGE,
+ SUCCESSFUL_OUTCOME,
+ UNSUCCESSFUL_OUTCOME
+};
+
+typedef struct {
+ guint32 message_type;
+ guint32 procedure_code;
+ guint32 protocol_ie_id;
+ guint32 protocol_extension_id;
+ const char *obj_id;
+} f1ap_private_data_t;
+
+typedef struct {
+ guint32 message_type;
+ guint32 ProcedureCode;
+ guint32 ProtocolIE_ID;
+ guint32 ProtocolExtensionID;
+} f1ap_ctx_t;
+
+/* Global variables */
+static dissector_handle_t f1ap_handle;
+
+/* Dissector tables */
+static dissector_table_t f1ap_ies_dissector_table;
+static dissector_table_t f1ap_extension_dissector_table;
+static dissector_table_t f1ap_proc_imsg_dissector_table;
+static dissector_table_t f1ap_proc_sout_dissector_table;
+static dissector_table_t f1ap_proc_uout_dissector_table;
+
+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 f1ap_private_data_t*
+f1ap_get_private_data(packet_info *pinfo)
+{
+ f1ap_private_data_t *f1ap_data = (f1ap_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_f1ap, 0);
+ if (!f1ap_data) {
+ f1ap_data = wmem_new0(pinfo->pool, f1ap_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_f1ap, 0, f1ap_data);
+ }
+ return f1ap_data;
+}
+
+
+/*--- Included file: packet-f1ap-fn.c ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-fn.c"
+
+static const value_string f1ap_Criticality_vals[] = {
+ { 0, "reject" },
+ { 1, "ignore" },
+ { 2, "notify" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_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_f1ap_INTEGER_0_65535(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, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_T_global(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 132 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &f1ap_data->obj_id);
+
+
+
+
+ return offset;
+}
+
+
+static const value_string f1ap_PrivateIE_ID_vals[] = {
+ { 0, "local" },
+ { 1, "global" },
+ { 0, NULL }
+};
+
+static const per_choice_t PrivateIE_ID_choice[] = {
+ { 0, &hf_f1ap_local , ASN1_NO_EXTENSIONS , dissect_f1ap_INTEGER_0_65535 },
+ { 1, &hf_f1ap_global , ASN1_NO_EXTENSIONS , dissect_f1ap_T_global },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_f1ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 128 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_data->obj_id = NULL;
+
+
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_PrivateIE_ID, PrivateIE_ID_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string f1ap_ProcedureCode_vals[] = {
+ { id_Reset, "id-Reset" },
+ { id_F1Setup, "id-F1Setup" },
+ { id_ErrorIndication, "id-ErrorIndication" },
+ { id_gNBDUConfigurationUpdate, "id-gNBDUConfigurationUpdate" },
+ { id_gNBCUConfigurationUpdate, "id-gNBCUConfigurationUpdate" },
+ { id_UEContextSetup, "id-UEContextSetup" },
+ { id_UEContextRelease, "id-UEContextRelease" },
+ { id_UEContextModification, "id-UEContextModification" },
+ { id_UEContextModificationRequired, "id-UEContextModificationRequired" },
+ { id_UEMobilityCommand, "id-UEMobilityCommand" },
+ { id_UEContextReleaseRequest, "id-UEContextReleaseRequest" },
+ { id_InitialULRRCMessageTransfer, "id-InitialULRRCMessageTransfer" },
+ { id_DLRRCMessageTransfer, "id-DLRRCMessageTransfer" },
+ { id_ULRRCMessageTransfer, "id-ULRRCMessageTransfer" },
+ { id_SystemInformationDelivery, "id-SystemInformationDelivery" },
+ { id_Paging, "id-Paging" },
+ { 0, NULL }
+};
+
+static value_string_ext f1ap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(f1ap_ProcedureCode_vals);
+
+
+static int
+dissect_f1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 74 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 255U, &f1ap_data->procedure_code, FALSE);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_ProtocolExtensionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 68 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 65535U, &f1ap_data->protocol_extension_id, FALSE);
+
+
+
+
+ return offset;
+}
+
+
+static const value_string f1ap_ProtocolIE_ID_vals[] = {
+ { id_Cause, "id-Cause" },
+ { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
+ { id_gNB_DU_F1AP_ID, "id-gNB-DU-F1AP-ID" },
+ { id_gNB_CU_F1AP_ID, "id-gNB-CU-F1AP-ID" },
+ { id_ResetType, "id-ResetType" },
+ { id_TimeToWait, "id-TimeToWait" },
+ { id_UE_associatedLogicalF1_ConnectionItem, "id-UE-associatedLogicalF1-ConnectionItem" },
+ { id_UE_associatedLogicalF1_ConnectionListResAck, "id-UE-associatedLogicalF1-ConnectionListResAck" },
+ { id_RRCContainer, "id-RRCContainer" },
+ { id_SRBID, "id-SRBID" },
+ { id_gNB_DU_ID, "id-gNB-DU-ID" },
+ { id_gNB_Name, "id-gNB-Name" },
+ { id_NRCellID, "id-NRCellID" },
+ { id_PCI, "id-PCI" },
+ { id_gNB_DU_Served_Cells_List, "id-gNB-DU-Served-Cells-List" },
+ { id_Cells_to_be_Activated_List, "id-Cells-to-be-Activated-List" },
+ { id_Served_Cells_To_Add_List, "id-Served-Cells-To-Add-List" },
+ { id_Served_Cells_To_Modify_List, "id-Served-Cells-To-Modify-List" },
+ { id_Served_Cells_To_Delete_List, "id-Served-Cells-To-Delete-List" },
+ { id_Cells_to_be_Deactivated_List, "id-Cells-to-be-Deactivated-List" },
+ { id_Cells_Failed_to_be_Activated_List, "id-Cells-Failed-to-be-Activated-List" },
+ { id_TransactionID, "id-TransactionID" },
+ { id_Served_Cell_Information, "id-Served-Cell-Information" },
+ { id_gNB_DU_System_Information, "id-gNB-DU-System-Information" },
+ { id_NCGI, "id-NCGI" },
+ { id_gNB_CU_System_Information, "id-gNB-CU-System-Information" },
+ { id_OldNCGI, "id-OldNCGI" },
+ { id_DRBID, "id-DRBID" },
+ { id_PSCell_ID, "id-PSCell-ID" },
+ { id_EUTRANQoS, "id-EUTRANQoS" },
+ { id_SRBs_ToBeSetup_List, "id-SRBs-ToBeSetup-List" },
+ { id_DRBs_ToBeSetup_List, "id-DRBs-ToBeSetup-List" },
+ { id_DLTunnels_ToBeSetup_List, "id-DLTunnels-ToBeSetup-List" },
+ { id_ULTunnels_ToBeSetup_List, "id-ULTunnels-ToBeSetup-List" },
+ { id_UL_GTP_Tunnel_EndPoint, "id-UL-GTP-Tunnel-EndPoint" },
+ { id_DL_GTP_Tunnel_EndPoint, "id-DL-GTP-Tunnel-EndPoint" },
+ { id_CUtoDURRCInformation, "id-CUtoDURRCInformation" },
+ { id_DUtoCURRCInformation, "id-DUtoCURRCInformation" },
+ { id_UERadioCapability, "id-UERadioCapability" },
+ { id_UEAggregateMaximumBitRate, "id-UEAggregateMaximumBitRate" },
+ { id_SCell_ToBeSetup_List, "id-SCell-ToBeSetup-List" },
+ { id_ResourceCoordinationTransferContainer, "id-ResourceCoordinationTransferContainer" },
+ { id_DRBs_ToBeModified_List, "id-DRBs-ToBeModified-List" },
+ { id_DRBs_ToBeReleased_List, "id-DRBs-ToBeReleased-List" },
+ { id_DRBs_Modified_List, "id-DRBs-Modified-List" },
+ { id_DRBs_FailedToSetup_List, "id-DRBs-FailedToSetup-List" },
+ { id_DRBs_FailedToBeModified_List, "id-DRBs-FailedToBeModified-List" },
+ { id_SCell_ID, "id-SCell-ID" },
+ { id_DRXCycle, "id-DRXCycle" },
+ { id_DRBs_Setup_List, "id-DRBs-Setup-List" },
+ { id_SRBs_Setup_List, "id-SRBs-Setup-List" },
+ { id_DRBs_FailedToBeSetup_List, "id-DRBs-FailedToBeSetup-List" },
+ { id_SRBs_FailedToBeSetup_List, "id-SRBs-FailedToBeSetup-List" },
+ { id_DLTunnels_ToBeSetup_list, "id-DLTunnels-ToBeSetup-list" },
+ { id_ULTunnels_ToBeSetup_list, "id-ULTunnels-ToBeSetup-list" },
+ { id_TransmissionStopIndicator, "id-TransmissionStopIndicator" },
+ { id_DRBs_Required_ToBeModified_List, "id-DRBs-Required-ToBeModified-List" },
+ { id_DRBs_Required_ToBeReleased_List, "id-DRBs-Required-ToBeReleased-List" },
+ { id_SRBs_Required_ToBeReleased_List, "id-SRBs-Required-ToBeReleased-List" },
+ { id_oldgNB_DU_F1AP_ID, "id-oldgNB-DU-F1AP-ID" },
+ { id_SRBs_ToBeReleased_List, "id-SRBs-ToBeReleased-List" },
+ { id_DRBs_ModifiedConf_List, "id-DRBs-ModifiedConf-List" },
+ { id_privateMessage, "id-privateMessage" },
+ { 0, NULL }
+};
+
+static value_string_ext f1ap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(f1ap_ProtocolIE_ID_vals);
+
+
+static int
+dissect_f1ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 56 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 65535U, &f1ap_data->protocol_ie_id, FALSE);
+
+
+
+
+#line 60 "./asn1/f1ap/f1ap.cnf"
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
+ val_to_str_ext(f1ap_data->protocol_ie_id, &f1ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+
+
+ return offset;
+}
+
+
+static const value_string f1ap_TriggeringMessage_vals[] = {
+ { 0, "initiating-message" },
+ { 1, "successful-outcome" },
+ { 2, "unsuccessfull-outcome" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_TriggeringMessage(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_f1ap_T_ie_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_f1ap_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_ID },
+ { &hf_f1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_ie_field_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_T_ie_field_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_ProtocolIE_Field, ProtocolIE_Field_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
+ { &hf_f1ap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Field },
+};
+
+static int
+dissect_f1ap_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_f1ap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
+ 0, maxProtocolIEs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_ProtocolIE_SingleContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_f1ap_ProtocolIE_Field(tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_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_f1ap_ext_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolExtensionID },
+ { &hf_f1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_extensionValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_T_extensionValue },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_ProtocolExtensionField, ProtocolExtensionField_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
+ { &hf_f1ap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolExtensionField },
+};
+
+static int
+dissect_f1ap_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_f1ap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
+ 1, maxProtocolExtensions, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 136 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ if (f1ap_data->obj_id) {
+ offset = call_per_oid_callback(f1ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
+ } else {
+ offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
+
+ }
+
+
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateIE_Field_sequence[] = {
+ { &hf_f1ap_private_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_PrivateIE_ID },
+ { &hf_f1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_T_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_PrivateIE_Field, PrivateIE_Field_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
+ { &hf_f1ap_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_PrivateIE_Field },
+};
+
+static int
+dissect_f1ap_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_f1ap_PrivateIE_Container, PrivateIE_Container_sequence_of,
+ 1, maxPrivateIEs, FALSE);
+
+ return offset;
+}
+
+
+static const value_string f1ap_PriorityLevel_vals[] = {
+ { 0, "spare" },
+ { 1, "highest" },
+ { 14, "lowest" },
+ { 15, "no-priority" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_PriorityLevel(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 f1ap_Pre_emptionCapability_vals[] = {
+ { 0, "shall-not-trigger-pre-emption" },
+ { 1, "may-trigger-pre-emption" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_Pre_emptionCapability(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, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string f1ap_Pre_emptionVulnerability_vals[] = {
+ { 0, "not-pre-emptable" },
+ { 1, "pre-emptable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_Pre_emptionVulnerability(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, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t AllocationAndRetentionPriority_sequence[] = {
+ { &hf_f1ap_priorityLevel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_PriorityLevel },
+ { &hf_f1ap_pre_emptionCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_Pre_emptionCapability },
+ { &hf_f1ap_pre_emptionVulnerability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_Pre_emptionVulnerability },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_AllocationAndRetentionPriority, AllocationAndRetentionPriority_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_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 int
+dissect_f1ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 374 "./asn1/f1ap/f1ap.cnf"
+ tvbuff_t *param_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &param_tvb);
+
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_PLMN_Identity);
+ dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ }
+
+
+
+ return offset;
+}
+
+
+static const per_sequence_t BroadcastPLMNs_Item_sequence_of[1] = {
+ { &hf_f1ap_BroadcastPLMNs_Item_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_PLMN_Identity },
+};
+
+static int
+dissect_f1ap_BroadcastPLMNs_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_f1ap_BroadcastPLMNs_Item, BroadcastPLMNs_Item_sequence_of,
+ 1, maxnoofBPLMNs, FALSE);
+
+ return offset;
+}
+
+
+static const value_string f1ap_CauseRadioNetwork_vals[] = {
+ { 0, "unspecified" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_CauseRadioNetwork(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 f1ap_CauseTransport_vals[] = {
+ { 0, "unspecified" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_CauseTransport(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 f1ap_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_f1ap_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 f1ap_CauseMisc_vals[] = {
+ { 0, "control-processing-overload" },
+ { 1, "not-enough-user-plane-processing-resources" },
+ { 2, "hardware-failure" },
+ { 3, "om-intervention" },
+ { 4, "unspecified" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_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 f1ap_Cause_vals[] = {
+ { 0, "radioNetwork" },
+ { 1, "transport" },
+ { 2, "protocol" },
+ { 3, "misc" },
+ { 0, NULL }
+};
+
+static const per_choice_t Cause_choice[] = {
+ { 0, &hf_f1ap_radioNetwork , ASN1_EXTENSION_ROOT , dissect_f1ap_CauseRadioNetwork },
+ { 1, &hf_f1ap_transport , ASN1_EXTENSION_ROOT , dissect_f1ap_CauseTransport },
+ { 2, &hf_f1ap_protocol , ASN1_EXTENSION_ROOT , dissect_f1ap_CauseProtocol },
+ { 3, &hf_f1ap_misc , ASN1_EXTENSION_ROOT , dissect_f1ap_CauseMisc },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_Cause, Cause_choice,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_CellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 401 "./asn1/f1ap/f1ap.cnf"
+ tvbuff_t *param_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &param_tvb);
+
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_CellGroupConfig);
+ dissect_nr_rrc_CellGroupConfig_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+
+
+ return offset;
+}
+
+
+static const value_string f1ap_TypeOfError_vals[] = {
+ { 0, "not-understood" },
+ { 1, "missing" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_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_Item_sequence[] = {
+ { &hf_f1ap_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_ID },
+ { &hf_f1ap_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_TypeOfError },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_CriticalityDiagnostics_IE_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_f1ap_CriticalityDiagnostics_IE_Item, CriticalityDiagnostics_IE_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
+ { &hf_f1ap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_CriticalityDiagnostics_IE_Item },
+};
+
+static int
+dissect_f1ap_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_f1ap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
+ 1, maxnoofErrors, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_sequence[] = {
+ { &hf_f1ap_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProcedureCode },
+ { &hf_f1ap_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_TriggeringMessage },
+ { &hf_f1ap_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_Criticality },
+ { &hf_f1ap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_CriticalityDiagnostics_IE_List },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_SCG_Config_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 393 "./asn1/f1ap/f1ap.cnf"
+ tvbuff_t *param_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &param_tvb);
+
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SCG_Config_Info);
+ dissect_nr_rrc_SCG_ConfigInfo_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_UERadiocapabilities(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 per_sequence_t CUtoDURRCInformation_sequence[] = {
+ { &hf_f1ap_sCG_Config_Info, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_SCG_Config_Info },
+ { &hf_f1ap_uERadiocapabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_UERadiocapabilities },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_CUtoDURRCInformation(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_f1ap_CUtoDURRCInformation, CUtoDURRCInformation_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_DRBID(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 f1ap_LongDRXCycleLength_vals[] = {
+ { 0, "ms10" },
+ { 1, "ms20" },
+ { 2, "ms32" },
+ { 3, "ms40" },
+ { 4, "ms60" },
+ { 5, "ms64" },
+ { 6, "ms70" },
+ { 7, "ms80" },
+ { 8, "ms128" },
+ { 9, "ms160" },
+ { 10, "ms256" },
+ { 11, "ms320" },
+ { 12, "ms512" },
+ { 13, "ms640" },
+ { 14, "ms1024" },
+ { 15, "ms1280" },
+ { 16, "ms2048" },
+ { 17, "ms2560" },
+ { 18, "ms5120" },
+ { 19, "ms10240" },
+ { 0, NULL }
+};
+
+static value_string_ext f1ap_LongDRXCycleLength_vals_ext = VALUE_STRING_EXT_INIT(f1ap_LongDRXCycleLength_vals);
+
+
+static int
+dissect_f1ap_LongDRXCycleLength(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,
+ 20, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string f1ap_ShortDRXCycleLength_vals[] = {
+ { 0, "ms2" },
+ { 1, "ms3" },
+ { 2, "ms4" },
+ { 3, "ms5" },
+ { 4, "ms6" },
+ { 5, "ms7" },
+ { 6, "ms8" },
+ { 7, "ms10" },
+ { 8, "ms14" },
+ { 9, "ms16" },
+ { 10, "ms20" },
+ { 11, "ms30" },
+ { 12, "ms32" },
+ { 13, "ms35" },
+ { 14, "ms40" },
+ { 15, "ms64" },
+ { 16, "ms80" },
+ { 17, "ms128" },
+ { 18, "ms160" },
+ { 19, "ms256" },
+ { 20, "ms320" },
+ { 21, "ms512" },
+ { 22, "ms640" },
+ { 0, NULL }
+};
+
+static value_string_ext f1ap_ShortDRXCycleLength_vals_ext = VALUE_STRING_EXT_INIT(f1ap_ShortDRXCycleLength_vals);
+
+
+static int
+dissect_f1ap_ShortDRXCycleLength(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,
+ 23, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_ShortDRXCycleTimer(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, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRXCycle_sequence[] = {
+ { &hf_f1ap_longDRXCycleLength, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_LongDRXCycleLength },
+ { &hf_f1ap_shortDRXCycleLength, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ShortDRXCycleLength },
+ { &hf_f1ap_shortDRXCycleTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ShortDRXCycleTimer },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_DRXCycle(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_f1ap_DRXCycle, DRXCycle_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DUtoCURRCInformation_sequence[] = {
+ { &hf_f1ap_cellGroupConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_CellGroupConfig },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_DUtoCURRCInformation(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_f1ap_DUtoCURRCInformation, DUtoCURRCInformation_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_QCI(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 GBR_QosInformation_sequence[] = {
+ { &hf_f1ap_e_RAB_MaximumBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_BitRate },
+ { &hf_f1ap_e_RAB_MaximumBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_BitRate },
+ { &hf_f1ap_e_RAB_GuaranteedBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_BitRate },
+ { &hf_f1ap_e_RAB_GuaranteedBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_BitRate },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GBR_QosInformation(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_f1ap_GBR_QosInformation, GBR_QosInformation_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRANQoS_sequence[] = {
+ { &hf_f1ap_qCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_QCI },
+ { &hf_f1ap_allocationAndRetentionPriority, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_AllocationAndRetentionPriority },
+ { &hf_f1ap_gbrQosInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_GBR_QosInformation },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_EUTRANQoS(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_f1ap_EUTRANQoS, EUTRANQoS_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_NARFCN(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, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_Transmission_Bandwidth(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, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t FDD_Info_sequence[] = {
+ { &hf_f1ap_uL_NARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_NARFCN },
+ { &hf_f1ap_dL_NARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_NARFCN },
+ { &hf_f1ap_uL_Transmission_Bandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_Transmission_Bandwidth },
+ { &hf_f1ap_dL_Transmission_Bandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_Transmission_Bandwidth },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_FDD_Info(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_f1ap_FDD_Info, FDD_Info_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_GNB_CU_F1AP_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 int
+dissect_f1ap_GNB_DU_F1AP_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 int
+dissect_f1ap_GNB_DU_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_64b(tvb, offset, actx, tree, hf_index,
+ 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_MIB_message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 382 "./asn1/f1ap/f1ap.cnf"
+ tvbuff_t *param_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &param_tvb);
+
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_MIB_message);
+ dissect_nr_rrc_MIB_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_SIB1_message(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 per_sequence_t GNB_DU_System_Information_sequence[] = {
+ { &hf_f1ap_mIB_message , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_MIB_message },
+ { &hf_f1ap_sIB1_message , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_SIB1_message },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNB_DU_System_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_f1ap_GNB_DU_System_Information, GNB_DU_System_Information_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_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 int
+dissect_f1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 409 "./asn1/f1ap/f1ap.cnf"
+ tvbuff_t *param_tvb = NULL;
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 1, 160, TRUE, &param_tvb, NULL);
+
+ if (param_tvb) {
+ proto_tree *subtree;
+ gint tvb_len;
+
+ tvb_len = tvb_reported_length(param_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_TransportLayerAddress);
+ if (tvb_len == 4) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ } else if (tvb_len == 16) {
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv6, param_tvb, 0, 16, ENC_NA);
+ } else if (tvb_len == 20) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_f1ap_transportLayerAddressIPv6, param_tvb, 4, 16, ENC_NA);
+ }
+ }
+
+
+
+
+ return offset;
+}
+
+
+static const per_sequence_t GTPTunnelEndpoint_sequence[] = {
+ { &hf_f1ap_transportLayerAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_TransportLayerAddress },
+ { &hf_f1ap_gTP_TEID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_GTP_TEID },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GTPTunnelEndpoint(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_f1ap_GTPTunnelEndpoint, GTPTunnelEndpoint_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_NRCellIdentity(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,
+ 36, 36, FALSE, NULL, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t NCGI_sequence[] = {
+ { &hf_f1ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_PLMN_Identity },
+ { &hf_f1ap_nRCellIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_NRCellIdentity },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_NCGI(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_f1ap_NCGI, NCGI_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t TDD_Info_sequence[] = {
+ { &hf_f1ap_nARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_NARFCN },
+ { &hf_f1ap_transmission_Bandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_Transmission_Bandwidth },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_TDD_Info(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_f1ap_TDD_Info, TDD_Info_sequence);
+
+ return offset;
+}
+
+
+static const value_string f1ap_NR_Mode_Info_vals[] = {
+ { 0, "fDD" },
+ { 1, "tDD" },
+ { 0, NULL }
+};
+
+static const per_choice_t NR_Mode_Info_choice[] = {
+ { 0, &hf_f1ap_fDD , ASN1_EXTENSION_ROOT , dissect_f1ap_FDD_Info },
+ { 1, &hf_f1ap_tDD , ASN1_EXTENSION_ROOT , dissect_f1ap_TDD_Info },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_f1ap_NR_Mode_Info(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_f1ap_NR_Mode_Info, NR_Mode_Info_choice,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_PCI(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, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_RRCContainer(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 per_sequence_t Served_Cell_Information_sequence[] = {
+ { &hf_f1ap_nCGI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_NCGI },
+ { &hf_f1ap_pCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_PCI },
+ { &hf_f1ap_broadcastPLMNs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_BroadcastPLMNs_Item },
+ { &hf_f1ap_nR_Mode_Info , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_NR_Mode_Info },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_Served_Cell_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_f1ap_Served_Cell_Information, Served_Cell_Information_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_SRBID(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, 3U, NULL, TRUE);
+
+ return offset;
+}
+
+
+static const value_string f1ap_TimeToWait_vals[] = {
+ { 0, "v1s" },
+ { 1, "v2s" },
+ { 2, "v5s" },
+ { 3, "v10s" },
+ { 4, "v20s" },
+ { 5, "v60s" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_TimeToWait(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_f1ap_TransactionID(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, TRUE);
+
+ return offset;
+}
+
+
+static const value_string f1ap_TransmissionStopIndicator_vals[] = {
+ { 0, "true" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_TransmissionStopIndicator(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 UE_associatedLogicalF1_ConnectionItem_sequence[] = {
+ { &hf_f1ap_gNB_CU_F1AP_ID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_GNB_CU_F1AP_ID },
+ { &hf_f1ap_gNB_DU_F1AP_ID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_GNB_DU_F1AP_ID },
+ { &hf_f1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UE_associatedLogicalF1_ConnectionItem(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_f1ap_UE_associatedLogicalF1_ConnectionItem, UE_associatedLogicalF1_ConnectionItem_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Reset_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 433 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_Reset, Reset_sequence);
+
+ return offset;
+}
+
+
+static const value_string f1ap_ResetAll_vals[] = {
+ { 0, "reset-all" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_f1ap_ResetAll(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 UE_associatedLogicalF1_ConnectionListRes_sequence_of[1] = {
+ { &hf_f1ap_UE_associatedLogicalF1_ConnectionListRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_UE_associatedLogicalF1_ConnectionListRes(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_f1ap_UE_associatedLogicalF1_ConnectionListRes, UE_associatedLogicalF1_ConnectionListRes_sequence_of,
+ 1, maxnoofIndividualF1ConnectionsToReset, FALSE);
+
+ return offset;
+}
+
+
+static const value_string f1ap_ResetType_vals[] = {
+ { 0, "f1-Interface" },
+ { 1, "partOfF1-Interface" },
+ { 0, NULL }
+};
+
+static const per_choice_t ResetType_choice[] = {
+ { 0, &hf_f1ap_f1_Interface , ASN1_EXTENSION_ROOT , dissect_f1ap_ResetAll },
+ { 1, &hf_f1ap_partOfF1_Interface, ASN1_EXTENSION_ROOT , dissect_f1ap_UE_associatedLogicalF1_ConnectionListRes },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_f1ap_ResetType(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_f1ap_ResetType, ResetType_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t ResetAcknowledge_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 435 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_ResetAcknowledge, ResetAcknowledge_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UE_associatedLogicalF1_ConnectionListResAck_sequence_of[1] = {
+ { &hf_f1ap_UE_associatedLogicalF1_ConnectionListResAck_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_UE_associatedLogicalF1_ConnectionListResAck(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_f1ap_UE_associatedLogicalF1_ConnectionListResAck, UE_associatedLogicalF1_ConnectionListResAck_sequence_of,
+ 1, maxnoofIndividualF1ConnectionsToReset, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t ErrorIndication_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 475 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_ErrorIndication, ErrorIndication_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1SetupRequest_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_F1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 437 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_F1SetupRequest, F1SetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_DU_Served_Cells_List_sequence_of[1] = {
+ { &hf_f1ap_GNB_DU_Served_Cells_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_GNB_DU_Served_Cells_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_f1ap_GNB_DU_Served_Cells_List, GNB_DU_Served_Cells_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_GNB_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
+ 1, 150, TRUE);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1SetupResponse_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_F1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 439 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_F1SetupResponse, F1SetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Cells_to_be_Activated_List_sequence_of[1] = {
+ { &hf_f1ap_Cells_to_be_Activated_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_Cells_to_be_Activated_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_f1ap_Cells_to_be_Activated_List, Cells_to_be_Activated_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1SetupFailure_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_F1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 441 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_F1SetupFailure, F1SetupFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNBDUConfigurationUpdate_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNBDUConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 443 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdate");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_GNBDUConfigurationUpdate, GNBDUConfigurationUpdate_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Served_Cells_To_Add_List_sequence_of[1] = {
+ { &hf_f1ap_Served_Cells_To_Add_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_Served_Cells_To_Add_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_f1ap_Served_Cells_To_Add_List, Served_Cells_To_Add_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Served_Cells_To_Modify_List_sequence_of[1] = {
+ { &hf_f1ap_Served_Cells_To_Modify_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_Served_Cells_To_Modify_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_f1ap_Served_Cells_To_Modify_List, Served_Cells_To_Modify_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Served_Cells_To_Delete_List_sequence_of[1] = {
+ { &hf_f1ap_Served_Cells_To_Delete_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_Served_Cells_To_Delete_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_f1ap_Served_Cells_To_Delete_List, Served_Cells_To_Delete_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNBDUConfigurationUpdateAcknowledge_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNBDUConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 445 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateAcknowledge");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_GNBDUConfigurationUpdateAcknowledge, GNBDUConfigurationUpdateAcknowledge_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNBDUConfigurationUpdateFailure_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNBDUConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 447 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_GNBDUConfigurationUpdateFailure, GNBDUConfigurationUpdateFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNBCUConfigurationUpdate_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNBCUConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 449 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdate");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_GNBCUConfigurationUpdate, GNBCUConfigurationUpdate_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Cells_to_be_Deactivated_List_sequence_of[1] = {
+ { &hf_f1ap_Cells_to_be_Deactivated_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_Cells_to_be_Deactivated_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_f1ap_Cells_to_be_Deactivated_List, Cells_to_be_Deactivated_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNBCUConfigurationUpdateAcknowledge_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNBCUConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 451 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateAcknowledge");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_GNBCUConfigurationUpdateAcknowledge, GNBCUConfigurationUpdateAcknowledge_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Cells_Failed_to_be_Activated_List_sequence_of[1] = {
+ { &hf_f1ap_Cells_Failed_to_be_Activated_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_Cells_Failed_to_be_Activated_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_f1ap_Cells_Failed_to_be_Activated_List, Cells_Failed_to_be_Activated_List_sequence_of,
+ 1, maxCellingNBDU, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNBCUConfigurationUpdateFailure_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_GNBCUConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 453 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_GNBCUConfigurationUpdateFailure, GNBCUConfigurationUpdateFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextSetupRequest_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 455 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextSetupRequest, UEContextSetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SCell_ToBeSetup_List_sequence_of[1] = {
+ { &hf_f1ap_SCell_ToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_SCell_ToBeSetup_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_f1ap_SCell_ToBeSetup_List, SCell_ToBeSetup_List_sequence_of,
+ 1, maxnoofSCells, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SRBs_ToBeSetup_List_sequence_of[1] = {
+ { &hf_f1ap_SRBs_ToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_SRBs_ToBeSetup_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_f1ap_SRBs_ToBeSetup_List, SRBs_ToBeSetup_List_sequence_of,
+ 1, maxnoofSRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_ToBeSetup_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_ToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_ToBeSetup_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_f1ap_DRBs_ToBeSetup_List, DRBs_ToBeSetup_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_ResourceCoordinationTransferContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 334 "./asn1/f1ap/f1ap.cnf"
+ tvbuff_t *param_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &param_tvb);
+
+ if (param_tvb) {
+ proto_tree *subtree;
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_ResourceCoordinationTransferContainer);
+ switch (f1ap_data->message_type) {
+ case INITIATING_MESSAGE:
+ switch (f1ap_data->procedure_code) {
+ case id_UEContextSetup:
+ case id_UEContextModification:
+ dissect_x2ap_MeNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case id_UEContextModificationRequired:
+ dissect_x2ap_SgNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ default:
+ break;
+ }
+ break;
+ case SUCCESSFUL_OUTCOME:
+ switch (f1ap_data->procedure_code) {
+ case id_UEContextSetup:
+ case id_UEContextModification:
+ dissect_x2ap_SgNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case id_UEContextModificationRequired:
+ dissect_x2ap_MeNBResourceCoordinationInformation_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+
+
+ return offset;
+}
+
+
+static const per_sequence_t ULTunnels_ToBeSetup_list_sequence_of[1] = {
+ { &hf_f1ap_ULTunnels_ToBeSetup_list_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_ULTunnels_ToBeSetup_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_f1ap_ULTunnels_ToBeSetup_list, ULTunnels_ToBeSetup_list_sequence_of,
+ 1, maxnoofULTunnels, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextSetupResponse_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 457 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextSetupResponse, UEContextSetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SRBs_Setup_List_sequence_of[1] = {
+ { &hf_f1ap_SRBs_Setup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_SRBs_Setup_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_f1ap_SRBs_Setup_List, SRBs_Setup_List_sequence_of,
+ 1, maxnoofSRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_Setup_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_Setup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_Setup_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_f1ap_DRBs_Setup_List, DRBs_Setup_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SRBs_FailedToBeSetup_List_sequence_of[1] = {
+ { &hf_f1ap_SRBs_FailedToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_SRBs_FailedToBeSetup_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_f1ap_SRBs_FailedToBeSetup_List, SRBs_FailedToBeSetup_List_sequence_of,
+ 1, maxnoofSRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_FailedToBeSetup_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_FailedToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_FailedToBeSetup_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_f1ap_DRBs_FailedToBeSetup_List, DRBs_FailedToBeSetup_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DLTunnels_ToBeSetup_list_sequence_of[1] = {
+ { &hf_f1ap_DLTunnels_ToBeSetup_list_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DLTunnels_ToBeSetup_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_f1ap_DLTunnels_ToBeSetup_list, DLTunnels_ToBeSetup_list_sequence_of,
+ 1, maxnoofDLTunnels, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextSetupFailure_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 459 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextSetupFailure, UEContextSetupFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextReleaseRequest_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 477 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextReleaseRequest, UEContextReleaseRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextReleaseCommand_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 461 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextReleaseCommand, UEContextReleaseCommand_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextReleaseComplete_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 463 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextReleaseComplete, UEContextReleaseComplete_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextModificationRequest_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 465 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextModificationRequest, UEContextModificationRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_ToBeModified_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_ToBeModified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_ToBeModified_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_f1ap_DRBs_ToBeModified_List, DRBs_ToBeModified_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SRBs_ToBeReleased_List_sequence_of[1] = {
+ { &hf_f1ap_SRBs_ToBeReleased_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_SRBs_ToBeReleased_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_f1ap_SRBs_ToBeReleased_List, SRBs_ToBeReleased_List_sequence_of,
+ 1, maxnoofSRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_ToBeReleased_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_ToBeReleased_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_ToBeReleased_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_f1ap_DRBs_ToBeReleased_List, DRBs_ToBeReleased_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextModificationResponse_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 467 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextModificationResponse, UEContextModificationResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_Modified_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_Modified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_Modified_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_f1ap_DRBs_Modified_List, DRBs_Modified_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_FailedToBeModified_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_FailedToBeModified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_FailedToBeModified_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_f1ap_DRBs_FailedToBeModified_List, DRBs_FailedToBeModified_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextModificationFailure_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 469 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextModificationFailure, UEContextModificationFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextModificationRequired_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 471 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequired");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextModificationRequired, UEContextModificationRequired_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_Required_ToBeModified_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_Required_ToBeModified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_Required_ToBeModified_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_f1ap_DRBs_Required_ToBeModified_List, DRBs_Required_ToBeModified_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_Required_ToBeReleased_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_Required_ToBeReleased_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_Required_ToBeReleased_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_f1ap_DRBs_Required_ToBeReleased_List, DRBs_Required_ToBeReleased_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SRBs_Required_ToBeReleased_List_sequence_of[1] = {
+ { &hf_f1ap_SRBs_Required_ToBeReleased_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_SRBs_Required_ToBeReleased_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_f1ap_SRBs_Required_ToBeReleased_List, SRBs_Required_ToBeReleased_List_sequence_of,
+ 1, maxnoofSRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEContextModificationConfirm_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 473 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_UEContextModificationConfirm, UEContextModificationConfirm_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRBs_ModifiedConf_List_sequence_of[1] = {
+ { &hf_f1ap_DRBs_ModifiedConf_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_f1ap_DRBs_ModifiedConf_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_f1ap_DRBs_ModifiedConf_List, DRBs_ModifiedConf_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DLRRCMessageTransfer_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_DLRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 479 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLRRCMessageTransfer");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_DLRRCMessageTransfer, DLRRCMessageTransfer_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ULRRCMessageTransfer_sequence[] = {
+ { &hf_f1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_ULRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 481 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ULRRCMessageTransfer");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_ULRRCMessageTransfer, ULRRCMessageTransfer_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateMessage_sequence[] = {
+ { &hf_f1ap_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_PrivateIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 483 "./asn1/f1ap/f1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_f1ap_PrivateMessage, PrivateMessage_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 80 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_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_f1ap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProcedureCode },
+ { &hf_f1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_InitiatingMessage_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_InitiatingMessage, InitiatingMessage_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 84 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_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_f1ap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProcedureCode },
+ { &hf_f1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_SuccessfulOutcome_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_SuccessfulOutcome, SuccessfulOutcome_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_f1ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 88 "./asn1/f1ap/f1ap.cnf"
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_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_f1ap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_ProcedureCode },
+ { &hf_f1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_Criticality },
+ { &hf_f1ap_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_UnsuccessfulOutcome_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_f1ap_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_f1ap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
+
+ return offset;
+}
+
+
+static const value_string f1ap_F1AP_PDU_vals[] = {
+ { 0, "initiatingMessage" },
+ { 1, "successfulOutcome" },
+ { 2, "unsuccessfulOutcome" },
+ { 0, NULL }
+};
+
+static const per_choice_t F1AP_PDU_choice[] = {
+ { 0, &hf_f1ap_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_f1ap_InitiatingMessage },
+ { 1, &hf_f1ap_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_f1ap_SuccessfulOutcome },
+ { 2, &hf_f1ap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_f1ap_UnsuccessfulOutcome },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_f1ap_F1AP_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_f1ap_F1AP_PDU, F1AP_PDU_choice,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+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_f1ap_Cause(tvb, offset, &asn1_ctx, tree, hf_f1ap_Cause_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_f1ap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_f1ap_CriticalityDiagnostics_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_CUtoDURRCInformation_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_f1ap_CUtoDURRCInformation(tvb, offset, &asn1_ctx, tree, hf_f1ap_CUtoDURRCInformation_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBID_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_f1ap_DRBID(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRXCycle_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_f1ap_DRXCycle(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRXCycle_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DUtoCURRCInformation_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_f1ap_DUtoCURRCInformation(tvb, offset, &asn1_ctx, tree, hf_f1ap_DUtoCURRCInformation_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_EUTRANQoS_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_f1ap_EUTRANQoS(tvb, offset, &asn1_ctx, tree, hf_f1ap_EUTRANQoS_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_F1AP_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_f1ap_GNB_CU_F1AP_ID(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNB_CU_F1AP_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_DU_F1AP_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_f1ap_GNB_DU_F1AP_ID(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNB_DU_F1AP_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_DU_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_f1ap_GNB_DU_ID(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNB_DU_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_DU_System_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_f1ap_GNB_DU_System_Information(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNB_DU_System_Information_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GTPTunnelEndpoint_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_f1ap_GTPTunnelEndpoint(tvb, offset, &asn1_ctx, tree, hf_f1ap_GTPTunnelEndpoint_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_NCGI_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_f1ap_NCGI(tvb, offset, &asn1_ctx, tree, hf_f1ap_NCGI_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_PCI_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_f1ap_PCI(tvb, offset, &asn1_ctx, tree, hf_f1ap_PCI_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_RRCContainer_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_f1ap_RRCContainer(tvb, offset, &asn1_ctx, tree, hf_f1ap_RRCContainer_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Served_Cell_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_f1ap_Served_Cell_Information(tvb, offset, &asn1_ctx, tree, hf_f1ap_Served_Cell_Information_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SRBID_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_f1ap_SRBID(tvb, offset, &asn1_ctx, tree, hf_f1ap_SRBID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_TimeToWait_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_f1ap_TimeToWait(tvb, offset, &asn1_ctx, tree, hf_f1ap_TimeToWait_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_TransactionID_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_f1ap_TransactionID(tvb, offset, &asn1_ctx, tree, hf_f1ap_TransactionID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_TransmissionStopIndicator_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_f1ap_TransmissionStopIndicator(tvb, offset, &asn1_ctx, tree, hf_f1ap_TransmissionStopIndicator_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UE_associatedLogicalF1_ConnectionItem_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_f1ap_UE_associatedLogicalF1_ConnectionItem(tvb, offset, &asn1_ctx, tree, hf_f1ap_UE_associatedLogicalF1_ConnectionItem_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Reset_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_f1ap_Reset(tvb, offset, &asn1_ctx, tree, hf_f1ap_Reset_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_ResetType_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_f1ap_ResetType(tvb, offset, &asn1_ctx, tree, hf_f1ap_ResetType_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_ResetAcknowledge_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_f1ap_ResetAcknowledge(tvb, offset, &asn1_ctx, tree, hf_f1ap_ResetAcknowledge_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UE_associatedLogicalF1_ConnectionListResAck_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_f1ap_UE_associatedLogicalF1_ConnectionListResAck(tvb, offset, &asn1_ctx, tree, hf_f1ap_UE_associatedLogicalF1_ConnectionListResAck_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_f1ap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_f1ap_ErrorIndication_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1SetupRequest_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_f1ap_F1SetupRequest(tvb, offset, &asn1_ctx, tree, hf_f1ap_F1SetupRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_DU_Served_Cells_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_f1ap_GNB_DU_Served_Cells_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNB_DU_Served_Cells_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_Name_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_f1ap_GNB_Name(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNB_Name_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1SetupResponse_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_f1ap_F1SetupResponse(tvb, offset, &asn1_ctx, tree, hf_f1ap_F1SetupResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Cells_to_be_Activated_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_f1ap_Cells_to_be_Activated_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_Cells_to_be_Activated_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1SetupFailure_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_f1ap_F1SetupFailure(tvb, offset, &asn1_ctx, tree, hf_f1ap_F1SetupFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNBDUConfigurationUpdate_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_f1ap_GNBDUConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNBDUConfigurationUpdate_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Served_Cells_To_Add_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_f1ap_Served_Cells_To_Add_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_Served_Cells_To_Add_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Served_Cells_To_Modify_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_f1ap_Served_Cells_To_Modify_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_Served_Cells_To_Modify_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Served_Cells_To_Delete_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_f1ap_Served_Cells_To_Delete_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_Served_Cells_To_Delete_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNBDUConfigurationUpdateAcknowledge_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_f1ap_GNBDUConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNBDUConfigurationUpdateAcknowledge_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNBDUConfigurationUpdateFailure_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_f1ap_GNBDUConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNBDUConfigurationUpdateFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNBCUConfigurationUpdate_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_f1ap_GNBCUConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNBCUConfigurationUpdate_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Cells_to_be_Deactivated_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_f1ap_Cells_to_be_Deactivated_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_Cells_to_be_Deactivated_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNBCUConfigurationUpdateAcknowledge_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_f1ap_GNBCUConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNBCUConfigurationUpdateAcknowledge_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Cells_Failed_to_be_Activated_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_f1ap_Cells_Failed_to_be_Activated_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_Cells_Failed_to_be_Activated_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNBCUConfigurationUpdateFailure_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_f1ap_GNBCUConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_f1ap_GNBCUConfigurationUpdateFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextSetupRequest_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_f1ap_UEContextSetupRequest(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextSetupRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SCell_ToBeSetup_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_f1ap_SCell_ToBeSetup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_SCell_ToBeSetup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SRBs_ToBeSetup_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_f1ap_SRBs_ToBeSetup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_SRBs_ToBeSetup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_ToBeSetup_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_f1ap_DRBs_ToBeSetup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_ToBeSetup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_ResourceCoordinationTransferContainer_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_f1ap_ResourceCoordinationTransferContainer(tvb, offset, &asn1_ctx, tree, hf_f1ap_ResourceCoordinationTransferContainer_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_ULTunnels_ToBeSetup_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_f1ap_ULTunnels_ToBeSetup_list(tvb, offset, &asn1_ctx, tree, hf_f1ap_ULTunnels_ToBeSetup_list_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextSetupResponse_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_f1ap_UEContextSetupResponse(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextSetupResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SRBs_Setup_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_f1ap_SRBs_Setup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_SRBs_Setup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_Setup_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_f1ap_DRBs_Setup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_Setup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SRBs_FailedToBeSetup_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_f1ap_SRBs_FailedToBeSetup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_SRBs_FailedToBeSetup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_FailedToBeSetup_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_f1ap_DRBs_FailedToBeSetup_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_FailedToBeSetup_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DLTunnels_ToBeSetup_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_f1ap_DLTunnels_ToBeSetup_list(tvb, offset, &asn1_ctx, tree, hf_f1ap_DLTunnels_ToBeSetup_list_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextSetupFailure_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_f1ap_UEContextSetupFailure(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextSetupFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextReleaseRequest_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_f1ap_UEContextReleaseRequest(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextReleaseRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextReleaseCommand_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_f1ap_UEContextReleaseCommand(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextReleaseCommand_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextReleaseComplete_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_f1ap_UEContextReleaseComplete(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextReleaseComplete_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextModificationRequest_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_f1ap_UEContextModificationRequest(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextModificationRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_ToBeModified_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_f1ap_DRBs_ToBeModified_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_ToBeModified_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SRBs_ToBeReleased_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_f1ap_SRBs_ToBeReleased_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_SRBs_ToBeReleased_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_ToBeReleased_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_f1ap_DRBs_ToBeReleased_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_ToBeReleased_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextModificationResponse_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_f1ap_UEContextModificationResponse(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextModificationResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_Modified_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_f1ap_DRBs_Modified_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_Modified_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_FailedToBeModified_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_f1ap_DRBs_FailedToBeModified_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_FailedToBeModified_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextModificationFailure_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_f1ap_UEContextModificationFailure(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextModificationFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextModificationRequired_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_f1ap_UEContextModificationRequired(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextModificationRequired_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_Required_ToBeModified_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_f1ap_DRBs_Required_ToBeModified_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_Required_ToBeModified_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_Required_ToBeReleased_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_f1ap_DRBs_Required_ToBeReleased_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_Required_ToBeReleased_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SRBs_Required_ToBeReleased_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_f1ap_SRBs_Required_ToBeReleased_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_SRBs_Required_ToBeReleased_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UEContextModificationConfirm_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_f1ap_UEContextModificationConfirm(tvb, offset, &asn1_ctx, tree, hf_f1ap_UEContextModificationConfirm_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRBs_ModifiedConf_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_f1ap_DRBs_ModifiedConf_List(tvb, offset, &asn1_ctx, tree, hf_f1ap_DRBs_ModifiedConf_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DLRRCMessageTransfer_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_f1ap_DLRRCMessageTransfer(tvb, offset, &asn1_ctx, tree, hf_f1ap_DLRRCMessageTransfer_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_ULRRCMessageTransfer_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_f1ap_ULRRCMessageTransfer(tvb, offset, &asn1_ctx, tree, hf_f1ap_ULRRCMessageTransfer_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_f1ap_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_f1ap_PrivateMessage_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1AP_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_f1ap_F1AP_PDU(tvb, offset, &asn1_ctx, tree, hf_f1ap_F1AP_PDU_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+
+
+/*--- End of included file: packet-f1ap-fn.c ---*/
+#line 104 "./asn1/f1ap/packet-f1ap-template.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ f1ap_ctx_t f1ap_ctx;
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ f1ap_ctx.message_type = f1ap_data->message_type;
+ f1ap_ctx.ProcedureCode = f1ap_data->procedure_code;
+ f1ap_ctx.ProtocolIE_ID = f1ap_data->protocol_ie_id;
+ f1ap_ctx.ProtocolExtensionID = f1ap_data->protocol_extension_id;
+
+ return (dissector_try_uint_new(f1ap_ies_dissector_table, f1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ f1ap_ctx_t f1ap_ctx;
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ f1ap_ctx.message_type = f1ap_data->message_type;
+ f1ap_ctx.ProcedureCode = f1ap_data->procedure_code;
+ f1ap_ctx.ProtocolIE_ID = f1ap_data->protocol_ie_id;
+ f1ap_ctx.ProtocolExtensionID = f1ap_data->protocol_extension_id;
+
+ return (dissector_try_uint_new(f1ap_extension_dissector_table, f1ap_data->protocol_extension_id, tvb, pinfo, tree, FALSE, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(f1ap_proc_imsg_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(f1ap_proc_sout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(f1ap_proc_uout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_f1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *f1ap_item = NULL;
+ proto_tree *f1ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "F1AP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* create the f1ap protocol tree */
+ f1ap_item = proto_tree_add_item(tree, proto_f1ap, tvb, 0, -1, ENC_NA);
+ f1ap_tree = proto_item_add_subtree(f1ap_item, ett_f1ap);
+
+ dissect_F1AP_PDU_PDU(tvb, pinfo, f1ap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+void proto_register_f1ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_f1ap_transportLayerAddressIPv4,
+ { "IPv4 transportLayerAddress", "f1ap.transportLayerAddressIPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_transportLayerAddressIPv6,
+ { "IPv6 transportLayerAddress", "f1ap.transportLayerAddressIPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+/*--- Included file: packet-f1ap-hfarr.c ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-hfarr.c"
+ { &hf_f1ap_Cause_PDU,
+ { "Cause", "f1ap.Cause",
+ FT_UINT32, BASE_DEC, VALS(f1ap_Cause_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_CriticalityDiagnostics_PDU,
+ { "CriticalityDiagnostics", "f1ap.CriticalityDiagnostics_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_CUtoDURRCInformation_PDU,
+ { "CUtoDURRCInformation", "f1ap.CUtoDURRCInformation_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBID_PDU,
+ { "DRBID", "f1ap.DRBID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRXCycle_PDU,
+ { "DRXCycle", "f1ap.DRXCycle_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DUtoCURRCInformation_PDU,
+ { "DUtoCURRCInformation", "f1ap.DUtoCURRCInformation_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_EUTRANQoS_PDU,
+ { "EUTRANQoS", "f1ap.EUTRANQoS_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_CU_F1AP_ID_PDU,
+ { "GNB-CU-F1AP-ID", "f1ap.GNB_CU_F1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_DU_F1AP_ID_PDU,
+ { "GNB-DU-F1AP-ID", "f1ap.GNB_DU_F1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_DU_ID_PDU,
+ { "GNB-DU-ID", "f1ap.GNB_DU_ID",
+ FT_UINT64, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_DU_System_Information_PDU,
+ { "GNB-DU-System-Information", "f1ap.GNB_DU_System_Information_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GTPTunnelEndpoint_PDU,
+ { "GTPTunnelEndpoint", "f1ap.GTPTunnelEndpoint_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_NCGI_PDU,
+ { "NCGI", "f1ap.NCGI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_PCI_PDU,
+ { "PCI", "f1ap.PCI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_RRCContainer_PDU,
+ { "RRCContainer", "f1ap.RRCContainer",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cell_Information_PDU,
+ { "Served-Cell-Information", "f1ap.Served_Cell_Information_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBID_PDU,
+ { "SRBID", "f1ap.SRBID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_TimeToWait_PDU,
+ { "TimeToWait", "f1ap.TimeToWait",
+ FT_UINT32, BASE_DEC, VALS(f1ap_TimeToWait_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_TransactionID_PDU,
+ { "TransactionID", "f1ap.TransactionID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_TransmissionStopIndicator_PDU,
+ { "TransmissionStopIndicator", "f1ap.TransmissionStopIndicator",
+ FT_UINT32, BASE_DEC, VALS(f1ap_TransmissionStopIndicator_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UE_associatedLogicalF1_ConnectionItem_PDU,
+ { "UE-associatedLogicalF1-ConnectionItem", "f1ap.UE_associatedLogicalF1_ConnectionItem_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Reset_PDU,
+ { "Reset", "f1ap.Reset_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ResetType_PDU,
+ { "ResetType", "f1ap.ResetType",
+ FT_UINT32, BASE_DEC, VALS(f1ap_ResetType_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ResetAcknowledge_PDU,
+ { "ResetAcknowledge", "f1ap.ResetAcknowledge_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UE_associatedLogicalF1_ConnectionListResAck_PDU,
+ { "UE-associatedLogicalF1-ConnectionListResAck", "f1ap.UE_associatedLogicalF1_ConnectionListResAck",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ErrorIndication_PDU,
+ { "ErrorIndication", "f1ap.ErrorIndication_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_F1SetupRequest_PDU,
+ { "F1SetupRequest", "f1ap.F1SetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_DU_Served_Cells_List_PDU,
+ { "GNB-DU-Served-Cells-List", "f1ap.GNB_DU_Served_Cells_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_Name_PDU,
+ { "GNB-Name", "f1ap.GNB_Name",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_F1SetupResponse_PDU,
+ { "F1SetupResponse", "f1ap.F1SetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Cells_to_be_Activated_List_PDU,
+ { "Cells-to-be-Activated-List", "f1ap.Cells_to_be_Activated_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_F1SetupFailure_PDU,
+ { "F1SetupFailure", "f1ap.F1SetupFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNBDUConfigurationUpdate_PDU,
+ { "GNBDUConfigurationUpdate", "f1ap.GNBDUConfigurationUpdate_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cells_To_Add_List_PDU,
+ { "Served-Cells-To-Add-List", "f1ap.Served_Cells_To_Add_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cells_To_Modify_List_PDU,
+ { "Served-Cells-To-Modify-List", "f1ap.Served_Cells_To_Modify_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cells_To_Delete_List_PDU,
+ { "Served-Cells-To-Delete-List", "f1ap.Served_Cells_To_Delete_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNBDUConfigurationUpdateAcknowledge_PDU,
+ { "GNBDUConfigurationUpdateAcknowledge", "f1ap.GNBDUConfigurationUpdateAcknowledge_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNBDUConfigurationUpdateFailure_PDU,
+ { "GNBDUConfigurationUpdateFailure", "f1ap.GNBDUConfigurationUpdateFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNBCUConfigurationUpdate_PDU,
+ { "GNBCUConfigurationUpdate", "f1ap.GNBCUConfigurationUpdate_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Cells_to_be_Deactivated_List_PDU,
+ { "Cells-to-be-Deactivated-List", "f1ap.Cells_to_be_Deactivated_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNBCUConfigurationUpdateAcknowledge_PDU,
+ { "GNBCUConfigurationUpdateAcknowledge", "f1ap.GNBCUConfigurationUpdateAcknowledge_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Cells_Failed_to_be_Activated_List_PDU,
+ { "Cells-Failed-to-be-Activated-List", "f1ap.Cells_Failed_to_be_Activated_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNBCUConfigurationUpdateFailure_PDU,
+ { "GNBCUConfigurationUpdateFailure", "f1ap.GNBCUConfigurationUpdateFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextSetupRequest_PDU,
+ { "UEContextSetupRequest", "f1ap.UEContextSetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SCell_ToBeSetup_List_PDU,
+ { "SCell-ToBeSetup-List", "f1ap.SCell_ToBeSetup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_ToBeSetup_List_PDU,
+ { "SRBs-ToBeSetup-List", "f1ap.SRBs_ToBeSetup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ToBeSetup_List_PDU,
+ { "DRBs-ToBeSetup-List", "f1ap.DRBs_ToBeSetup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ResourceCoordinationTransferContainer_PDU,
+ { "ResourceCoordinationTransferContainer", "f1ap.ResourceCoordinationTransferContainer",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ULTunnels_ToBeSetup_list_PDU,
+ { "ULTunnels-ToBeSetup-list", "f1ap.ULTunnels_ToBeSetup_list",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextSetupResponse_PDU,
+ { "UEContextSetupResponse", "f1ap.UEContextSetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_Setup_List_PDU,
+ { "SRBs-Setup-List", "f1ap.SRBs_Setup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Setup_List_PDU,
+ { "DRBs-Setup-List", "f1ap.DRBs_Setup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_FailedToBeSetup_List_PDU,
+ { "SRBs-FailedToBeSetup-List", "f1ap.SRBs_FailedToBeSetup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_FailedToBeSetup_List_PDU,
+ { "DRBs-FailedToBeSetup-List", "f1ap.DRBs_FailedToBeSetup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DLTunnels_ToBeSetup_list_PDU,
+ { "DLTunnels-ToBeSetup-list", "f1ap.DLTunnels_ToBeSetup_list",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextSetupFailure_PDU,
+ { "UEContextSetupFailure", "f1ap.UEContextSetupFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextReleaseRequest_PDU,
+ { "UEContextReleaseRequest", "f1ap.UEContextReleaseRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextReleaseCommand_PDU,
+ { "UEContextReleaseCommand", "f1ap.UEContextReleaseCommand_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextReleaseComplete_PDU,
+ { "UEContextReleaseComplete", "f1ap.UEContextReleaseComplete_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextModificationRequest_PDU,
+ { "UEContextModificationRequest", "f1ap.UEContextModificationRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ToBeModified_List_PDU,
+ { "DRBs-ToBeModified-List", "f1ap.DRBs_ToBeModified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_ToBeReleased_List_PDU,
+ { "SRBs-ToBeReleased-List", "f1ap.SRBs_ToBeReleased_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ToBeReleased_List_PDU,
+ { "DRBs-ToBeReleased-List", "f1ap.DRBs_ToBeReleased_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextModificationResponse_PDU,
+ { "UEContextModificationResponse", "f1ap.UEContextModificationResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Modified_List_PDU,
+ { "DRBs-Modified-List", "f1ap.DRBs_Modified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_FailedToBeModified_List_PDU,
+ { "DRBs-FailedToBeModified-List", "f1ap.DRBs_FailedToBeModified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextModificationFailure_PDU,
+ { "UEContextModificationFailure", "f1ap.UEContextModificationFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextModificationRequired_PDU,
+ { "UEContextModificationRequired", "f1ap.UEContextModificationRequired_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Required_ToBeModified_List_PDU,
+ { "DRBs-Required-ToBeModified-List", "f1ap.DRBs_Required_ToBeModified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Required_ToBeReleased_List_PDU,
+ { "DRBs-Required-ToBeReleased-List", "f1ap.DRBs_Required_ToBeReleased_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_Required_ToBeReleased_List_PDU,
+ { "SRBs-Required-ToBeReleased-List", "f1ap.SRBs_Required_ToBeReleased_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UEContextModificationConfirm_PDU,
+ { "UEContextModificationConfirm", "f1ap.UEContextModificationConfirm_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ModifiedConf_List_PDU,
+ { "DRBs-ModifiedConf-List", "f1ap.DRBs_ModifiedConf_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DLRRCMessageTransfer_PDU,
+ { "DLRRCMessageTransfer", "f1ap.DLRRCMessageTransfer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ULRRCMessageTransfer_PDU,
+ { "ULRRCMessageTransfer", "f1ap.ULRRCMessageTransfer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_PrivateMessage_PDU,
+ { "PrivateMessage", "f1ap.PrivateMessage_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_F1AP_PDU_PDU,
+ { "F1AP-PDU", "f1ap.F1AP_PDU",
+ FT_UINT32, BASE_DEC, VALS(f1ap_F1AP_PDU_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_local,
+ { "local", "f1ap.local",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_0_65535", HFILL }},
+ { &hf_f1ap_global,
+ { "global", "f1ap.global",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ProtocolIE_Container_item,
+ { "ProtocolIE-Field", "f1ap.ProtocolIE_Field_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_id,
+ { "id", "f1ap.id",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &f1ap_ProtocolIE_ID_vals_ext, 0,
+ "ProtocolIE_ID", HFILL }},
+ { &hf_f1ap_criticality,
+ { "criticality", "f1ap.criticality",
+ FT_UINT32, BASE_DEC, VALS(f1ap_Criticality_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ie_field_value,
+ { "value", "f1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "T_ie_field_value", HFILL }},
+ { &hf_f1ap_ProtocolExtensionContainer_item,
+ { "ProtocolExtensionField", "f1ap.ProtocolExtensionField_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ext_id,
+ { "id", "f1ap.id",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolExtensionID", HFILL }},
+ { &hf_f1ap_extensionValue,
+ { "extensionValue", "f1ap.extensionValue_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_PrivateIE_Container_item,
+ { "PrivateIE-Field", "f1ap.PrivateIE_Field_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_private_id,
+ { "id", "f1ap.id",
+ FT_UINT32, BASE_DEC, VALS(f1ap_PrivateIE_ID_vals), 0,
+ "PrivateIE_ID", HFILL }},
+ { &hf_f1ap_value,
+ { "value", "f1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_priorityLevel,
+ { "priorityLevel", "f1ap.priorityLevel",
+ FT_UINT32, BASE_DEC, VALS(f1ap_PriorityLevel_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_pre_emptionCapability,
+ { "pre-emptionCapability", "f1ap.pre_emptionCapability",
+ FT_UINT32, BASE_DEC, VALS(f1ap_Pre_emptionCapability_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_pre_emptionVulnerability,
+ { "pre-emptionVulnerability", "f1ap.pre_emptionVulnerability",
+ FT_UINT32, BASE_DEC, VALS(f1ap_Pre_emptionVulnerability_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_iE_Extensions,
+ { "iE-Extensions", "f1ap.iE_Extensions",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolExtensionContainer", HFILL }},
+ { &hf_f1ap_BroadcastPLMNs_Item_item,
+ { "PLMN-Identity", "f1ap.PLMN_Identity",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_radioNetwork,
+ { "radioNetwork", "f1ap.radioNetwork",
+ FT_UINT32, BASE_DEC, VALS(f1ap_CauseRadioNetwork_vals), 0,
+ "CauseRadioNetwork", HFILL }},
+ { &hf_f1ap_transport,
+ { "transport", "f1ap.transport",
+ FT_UINT32, BASE_DEC, VALS(f1ap_CauseTransport_vals), 0,
+ "CauseTransport", HFILL }},
+ { &hf_f1ap_protocol,
+ { "protocol", "f1ap.protocol",
+ FT_UINT32, BASE_DEC, VALS(f1ap_CauseProtocol_vals), 0,
+ "CauseProtocol", HFILL }},
+ { &hf_f1ap_misc,
+ { "misc", "f1ap.misc",
+ FT_UINT32, BASE_DEC, VALS(f1ap_CauseMisc_vals), 0,
+ "CauseMisc", HFILL }},
+ { &hf_f1ap_procedureCode,
+ { "procedureCode", "f1ap.procedureCode",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &f1ap_ProcedureCode_vals_ext, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_triggeringMessage,
+ { "triggeringMessage", "f1ap.triggeringMessage",
+ FT_UINT32, BASE_DEC, VALS(f1ap_TriggeringMessage_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_procedureCriticality,
+ { "procedureCriticality", "f1ap.procedureCriticality",
+ FT_UINT32, BASE_DEC, VALS(f1ap_Criticality_vals), 0,
+ "Criticality", HFILL }},
+ { &hf_f1ap_iEsCriticalityDiagnostics,
+ { "iEsCriticalityDiagnostics", "f1ap.iEsCriticalityDiagnostics",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CriticalityDiagnostics_IE_List", HFILL }},
+ { &hf_f1ap_CriticalityDiagnostics_IE_List_item,
+ { "CriticalityDiagnostics-IE-Item", "f1ap.CriticalityDiagnostics_IE_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_iECriticality,
+ { "iECriticality", "f1ap.iECriticality",
+ FT_UINT32, BASE_DEC, VALS(f1ap_Criticality_vals), 0,
+ "Criticality", HFILL }},
+ { &hf_f1ap_iE_ID,
+ { "iE-ID", "f1ap.iE_ID",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &f1ap_ProtocolIE_ID_vals_ext, 0,
+ "ProtocolIE_ID", HFILL }},
+ { &hf_f1ap_typeOfError,
+ { "typeOfError", "f1ap.typeOfError",
+ FT_UINT32, BASE_DEC, VALS(f1ap_TypeOfError_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_sCG_Config_Info,
+ { "sCG-Config-Info", "f1ap.sCG_Config_Info",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_uERadiocapabilities,
+ { "uERadiocapabilities", "f1ap.uERadiocapabilities",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_longDRXCycleLength,
+ { "longDRXCycleLength", "f1ap.longDRXCycleLength",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &f1ap_LongDRXCycleLength_vals_ext, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_shortDRXCycleLength,
+ { "shortDRXCycleLength", "f1ap.shortDRXCycleLength",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &f1ap_ShortDRXCycleLength_vals_ext, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_shortDRXCycleTimer,
+ { "shortDRXCycleTimer", "f1ap.shortDRXCycleTimer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_cellGroupConfig,
+ { "cellGroupConfig", "f1ap.cellGroupConfig",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_qCI,
+ { "qCI", "f1ap.qCI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_allocationAndRetentionPriority,
+ { "allocationAndRetentionPriority", "f1ap.allocationAndRetentionPriority_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_gbrQosInformation,
+ { "gbrQosInformation", "f1ap.gbrQosInformation_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GBR_QosInformation", HFILL }},
+ { &hf_f1ap_uL_NARFCN,
+ { "uL-NARFCN", "f1ap.uL_NARFCN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "NARFCN", HFILL }},
+ { &hf_f1ap_dL_NARFCN,
+ { "dL-NARFCN", "f1ap.dL_NARFCN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "NARFCN", HFILL }},
+ { &hf_f1ap_uL_Transmission_Bandwidth,
+ { "uL-Transmission-Bandwidth", "f1ap.uL_Transmission_Bandwidth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Transmission_Bandwidth", HFILL }},
+ { &hf_f1ap_dL_Transmission_Bandwidth,
+ { "dL-Transmission-Bandwidth", "f1ap.dL_Transmission_Bandwidth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Transmission_Bandwidth", HFILL }},
+ { &hf_f1ap_e_RAB_MaximumBitrateDL,
+ { "e-RAB-MaximumBitrateDL", "f1ap.e_RAB_MaximumBitrateDL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_f1ap_e_RAB_MaximumBitrateUL,
+ { "e-RAB-MaximumBitrateUL", "f1ap.e_RAB_MaximumBitrateUL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_f1ap_e_RAB_GuaranteedBitrateDL,
+ { "e-RAB-GuaranteedBitrateDL", "f1ap.e_RAB_GuaranteedBitrateDL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_f1ap_e_RAB_GuaranteedBitrateUL,
+ { "e-RAB-GuaranteedBitrateUL", "f1ap.e_RAB_GuaranteedBitrateUL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_f1ap_mIB_message,
+ { "mIB-message", "f1ap.mIB_message",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_sIB1_message,
+ { "sIB1-message", "f1ap.sIB1_message",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_transportLayerAddress,
+ { "transportLayerAddress", "f1ap.transportLayerAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_gTP_TEID,
+ { "gTP-TEID", "f1ap.gTP_TEID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_pLMN_Identity,
+ { "pLMN-Identity", "f1ap.pLMN_Identity",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_nRCellIdentity,
+ { "nRCellIdentity", "f1ap.nRCellIdentity",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_fDD,
+ { "fDD", "f1ap.fDD_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "FDD_Info", HFILL }},
+ { &hf_f1ap_tDD,
+ { "tDD", "f1ap.tDD_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TDD_Info", HFILL }},
+ { &hf_f1ap_nCGI,
+ { "nCGI", "f1ap.nCGI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_pCI,
+ { "pCI", "f1ap.pCI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_broadcastPLMNs,
+ { "broadcastPLMNs", "f1ap.broadcastPLMNs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BroadcastPLMNs_Item", HFILL }},
+ { &hf_f1ap_nR_Mode_Info,
+ { "nR-Mode-Info", "f1ap.nR_Mode_Info",
+ FT_UINT32, BASE_DEC, VALS(f1ap_NR_Mode_Info_vals), 0,
+ NULL, HFILL }},
+ { &hf_f1ap_nARFCN,
+ { "nARFCN", "f1ap.nARFCN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_transmission_Bandwidth,
+ { "transmission-Bandwidth", "f1ap.transmission_Bandwidth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_gNB_CU_F1AP_ID,
+ { "gNB-CU-F1AP-ID", "f1ap.gNB_CU_F1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_gNB_DU_F1AP_ID,
+ { "gNB-DU-F1AP-ID", "f1ap.gNB_DU_F1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_protocolIEs,
+ { "protocolIEs", "f1ap.protocolIEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE_Container", HFILL }},
+ { &hf_f1ap_f1_Interface,
+ { "f1-Interface", "f1ap.f1_Interface",
+ FT_UINT32, BASE_DEC, VALS(f1ap_ResetAll_vals), 0,
+ "ResetAll", HFILL }},
+ { &hf_f1ap_partOfF1_Interface,
+ { "partOfF1-Interface", "f1ap.partOfF1_Interface",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "UE_associatedLogicalF1_ConnectionListRes", HFILL }},
+ { &hf_f1ap_UE_associatedLogicalF1_ConnectionListRes_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_UE_associatedLogicalF1_ConnectionListResAck_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_GNB_DU_Served_Cells_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Cells_to_be_Activated_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cells_To_Add_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cells_To_Modify_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Served_Cells_To_Delete_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Cells_to_be_Deactivated_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_Cells_Failed_to_be_Activated_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SCell_ToBeSetup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_ToBeSetup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ToBeSetup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_ULTunnels_ToBeSetup_list_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_Setup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Setup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_FailedToBeSetup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_FailedToBeSetup_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DLTunnels_ToBeSetup_list_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ToBeModified_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_ToBeReleased_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ToBeReleased_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Modified_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_FailedToBeModified_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Required_ToBeModified_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_Required_ToBeReleased_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_SRBs_Required_ToBeReleased_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_DRBs_ModifiedConf_List_item,
+ { "ProtocolIE-SingleContainer", "f1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_privateIEs,
+ { "privateIEs", "f1ap.privateIEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PrivateIE_Container", HFILL }},
+ { &hf_f1ap_initiatingMessage,
+ { "initiatingMessage", "f1ap.initiatingMessage_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_successfulOutcome,
+ { "successfulOutcome", "f1ap.successfulOutcome_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_unsuccessfulOutcome,
+ { "unsuccessfulOutcome", "f1ap.unsuccessfulOutcome_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_f1ap_initiatingMessagevalue,
+ { "value", "f1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InitiatingMessage_value", HFILL }},
+ { &hf_f1ap_successfulOutcome_value,
+ { "value", "f1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SuccessfulOutcome_value", HFILL }},
+ { &hf_f1ap_unsuccessfulOutcome_value,
+ { "value", "f1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "UnsuccessfulOutcome_value", HFILL }},
+
+/*--- End of included file: packet-f1ap-hfarr.c ---*/
+#line 185 "./asn1/f1ap/packet-f1ap-template.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_f1ap,
+ &ett_f1ap_ResourceCoordinationTransferContainer,
+ &ett_f1ap_PLMN_Identity,
+ &ett_f1ap_MIB_message,
+ &ett_f1ap_SCG_Config_Info,
+ &ett_f1ap_CellGroupConfig,
+ &ett_f1ap_TransportLayerAddress,
+
+/*--- Included file: packet-f1ap-ettarr.c ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-ettarr.c"
+ &ett_f1ap_PrivateIE_ID,
+ &ett_f1ap_ProtocolIE_Container,
+ &ett_f1ap_ProtocolIE_Field,
+ &ett_f1ap_ProtocolExtensionContainer,
+ &ett_f1ap_ProtocolExtensionField,
+ &ett_f1ap_PrivateIE_Container,
+ &ett_f1ap_PrivateIE_Field,
+ &ett_f1ap_AllocationAndRetentionPriority,
+ &ett_f1ap_BroadcastPLMNs_Item,
+ &ett_f1ap_Cause,
+ &ett_f1ap_CriticalityDiagnostics,
+ &ett_f1ap_CriticalityDiagnostics_IE_List,
+ &ett_f1ap_CriticalityDiagnostics_IE_Item,
+ &ett_f1ap_CUtoDURRCInformation,
+ &ett_f1ap_DRXCycle,
+ &ett_f1ap_DUtoCURRCInformation,
+ &ett_f1ap_EUTRANQoS,
+ &ett_f1ap_FDD_Info,
+ &ett_f1ap_GBR_QosInformation,
+ &ett_f1ap_GNB_DU_System_Information,
+ &ett_f1ap_GTPTunnelEndpoint,
+ &ett_f1ap_NCGI,
+ &ett_f1ap_NR_Mode_Info,
+ &ett_f1ap_Served_Cell_Information,
+ &ett_f1ap_TDD_Info,
+ &ett_f1ap_UE_associatedLogicalF1_ConnectionItem,
+ &ett_f1ap_Reset,
+ &ett_f1ap_ResetType,
+ &ett_f1ap_UE_associatedLogicalF1_ConnectionListRes,
+ &ett_f1ap_ResetAcknowledge,
+ &ett_f1ap_UE_associatedLogicalF1_ConnectionListResAck,
+ &ett_f1ap_ErrorIndication,
+ &ett_f1ap_F1SetupRequest,
+ &ett_f1ap_GNB_DU_Served_Cells_List,
+ &ett_f1ap_F1SetupResponse,
+ &ett_f1ap_Cells_to_be_Activated_List,
+ &ett_f1ap_F1SetupFailure,
+ &ett_f1ap_GNBDUConfigurationUpdate,
+ &ett_f1ap_Served_Cells_To_Add_List,
+ &ett_f1ap_Served_Cells_To_Modify_List,
+ &ett_f1ap_Served_Cells_To_Delete_List,
+ &ett_f1ap_GNBDUConfigurationUpdateAcknowledge,
+ &ett_f1ap_GNBDUConfigurationUpdateFailure,
+ &ett_f1ap_GNBCUConfigurationUpdate,
+ &ett_f1ap_Cells_to_be_Deactivated_List,
+ &ett_f1ap_GNBCUConfigurationUpdateAcknowledge,
+ &ett_f1ap_Cells_Failed_to_be_Activated_List,
+ &ett_f1ap_GNBCUConfigurationUpdateFailure,
+ &ett_f1ap_UEContextSetupRequest,
+ &ett_f1ap_SCell_ToBeSetup_List,
+ &ett_f1ap_SRBs_ToBeSetup_List,
+ &ett_f1ap_DRBs_ToBeSetup_List,
+ &ett_f1ap_ULTunnels_ToBeSetup_list,
+ &ett_f1ap_UEContextSetupResponse,
+ &ett_f1ap_SRBs_Setup_List,
+ &ett_f1ap_DRBs_Setup_List,
+ &ett_f1ap_SRBs_FailedToBeSetup_List,
+ &ett_f1ap_DRBs_FailedToBeSetup_List,
+ &ett_f1ap_DLTunnels_ToBeSetup_list,
+ &ett_f1ap_UEContextSetupFailure,
+ &ett_f1ap_UEContextReleaseRequest,
+ &ett_f1ap_UEContextReleaseCommand,
+ &ett_f1ap_UEContextReleaseComplete,
+ &ett_f1ap_UEContextModificationRequest,
+ &ett_f1ap_DRBs_ToBeModified_List,
+ &ett_f1ap_SRBs_ToBeReleased_List,
+ &ett_f1ap_DRBs_ToBeReleased_List,
+ &ett_f1ap_UEContextModificationResponse,
+ &ett_f1ap_DRBs_Modified_List,
+ &ett_f1ap_DRBs_FailedToBeModified_List,
+ &ett_f1ap_UEContextModificationFailure,
+ &ett_f1ap_UEContextModificationRequired,
+ &ett_f1ap_DRBs_Required_ToBeModified_List,
+ &ett_f1ap_DRBs_Required_ToBeReleased_List,
+ &ett_f1ap_SRBs_Required_ToBeReleased_List,
+ &ett_f1ap_UEContextModificationConfirm,
+ &ett_f1ap_DRBs_ModifiedConf_List,
+ &ett_f1ap_DLRRCMessageTransfer,
+ &ett_f1ap_ULRRCMessageTransfer,
+ &ett_f1ap_PrivateMessage,
+ &ett_f1ap_F1AP_PDU,
+ &ett_f1ap_InitiatingMessage,
+ &ett_f1ap_SuccessfulOutcome,
+ &ett_f1ap_UnsuccessfulOutcome,
+
+/*--- End of included file: packet-f1ap-ettarr.c ---*/
+#line 197 "./asn1/f1ap/packet-f1ap-template.c"
+ };
+
+ /* Register protocol */
+ proto_f1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_f1ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ f1ap_handle = register_dissector("f1ap", dissect_f1ap, proto_f1ap);
+
+ /* Register dissector tables */
+ f1ap_ies_dissector_table = register_dissector_table("f1ap.ies", "F1AP-PROTOCOL-IES", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_extension_dissector_table = register_dissector_table("f1ap.extension", "F1AP-PROTOCOL-EXTENSION", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_proc_imsg_dissector_table = register_dissector_table("f1ap.proc.imsg", "F1AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_proc_sout_dissector_table = register_dissector_table("f1ap.proc.sout", "F1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_f1ap, FT_UINT32, BASE_DEC);
+ f1ap_proc_uout_dissector_table = register_dissector_table("f1ap.proc.uout", "F1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_f1ap, FT_UINT32, BASE_DEC);
+}
+
+void
+proto_reg_handoff_f1ap(void)
+{
+ dissector_add_uint_with_preference("sctp.port", SCTP_PORT_F1AP, f1ap_handle);
+ dissector_add_uint("sctp.ppi", F1AP_PROTOCOL_ID, f1ap_handle);
+
+/*--- Included file: packet-f1ap-dis-tab.c ---*/
+#line 1 "./asn1/f1ap/packet-f1ap-dis-tab.c"
+ dissector_add_uint("f1ap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_gNB_DU_F1AP_ID, create_dissector_handle(dissect_GNB_DU_F1AP_ID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_gNB_CU_F1AP_ID, create_dissector_handle(dissect_GNB_CU_F1AP_ID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_ResetType, create_dissector_handle(dissect_ResetType_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_TimeToWait, create_dissector_handle(dissect_TimeToWait_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_UE_associatedLogicalF1_ConnectionItem, create_dissector_handle(dissect_UE_associatedLogicalF1_ConnectionItem_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_UE_associatedLogicalF1_ConnectionListResAck, create_dissector_handle(dissect_UE_associatedLogicalF1_ConnectionListResAck_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_RRCContainer, create_dissector_handle(dissect_RRCContainer_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SRBID, create_dissector_handle(dissect_SRBID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_gNB_DU_ID, create_dissector_handle(dissect_GNB_DU_ID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_gNB_Name, create_dissector_handle(dissect_GNB_Name_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_PCI, create_dissector_handle(dissect_PCI_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_gNB_DU_Served_Cells_List, create_dissector_handle(dissect_GNB_DU_Served_Cells_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Cells_to_be_Activated_List, create_dissector_handle(dissect_Cells_to_be_Activated_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Served_Cells_To_Add_List, create_dissector_handle(dissect_Served_Cells_To_Add_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Served_Cells_To_Modify_List, create_dissector_handle(dissect_Served_Cells_To_Modify_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Served_Cells_To_Delete_List, create_dissector_handle(dissect_Served_Cells_To_Delete_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Cells_to_be_Deactivated_List, create_dissector_handle(dissect_Cells_to_be_Deactivated_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Cells_Failed_to_be_Activated_List, create_dissector_handle(dissect_Cells_Failed_to_be_Activated_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_TransactionID, create_dissector_handle(dissect_TransactionID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_Served_Cell_Information, create_dissector_handle(dissect_Served_Cell_Information_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_gNB_DU_System_Information, create_dissector_handle(dissect_GNB_DU_System_Information_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_NCGI, create_dissector_handle(dissect_NCGI_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_OldNCGI, create_dissector_handle(dissect_NCGI_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBID, create_dissector_handle(dissect_DRBID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_PSCell_ID, create_dissector_handle(dissect_NCGI_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_EUTRANQoS, create_dissector_handle(dissect_EUTRANQoS_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SRBs_ToBeSetup_List, create_dissector_handle(dissect_SRBs_ToBeSetup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_ToBeSetup_List, create_dissector_handle(dissect_DRBs_ToBeSetup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DLTunnels_ToBeSetup_List, create_dissector_handle(dissect_DLTunnels_ToBeSetup_list_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_ULTunnels_ToBeSetup_List, create_dissector_handle(dissect_ULTunnels_ToBeSetup_list_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_UL_GTP_Tunnel_EndPoint, create_dissector_handle(dissect_GTPTunnelEndpoint_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DL_GTP_Tunnel_EndPoint, create_dissector_handle(dissect_GTPTunnelEndpoint_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_CUtoDURRCInformation, create_dissector_handle(dissect_CUtoDURRCInformation_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DUtoCURRCInformation, create_dissector_handle(dissect_DUtoCURRCInformation_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SCell_ToBeSetup_List, create_dissector_handle(dissect_SCell_ToBeSetup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_ResourceCoordinationTransferContainer, create_dissector_handle(dissect_ResourceCoordinationTransferContainer_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_ToBeModified_List, create_dissector_handle(dissect_DRBs_ToBeModified_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_ToBeReleased_List, create_dissector_handle(dissect_DRBs_ToBeReleased_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_Modified_List, create_dissector_handle(dissect_DRBs_Modified_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_FailedToBeModified_List, create_dissector_handle(dissect_DRBs_FailedToBeModified_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SCell_ID, create_dissector_handle(dissect_NCGI_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRXCycle, create_dissector_handle(dissect_DRXCycle_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_Setup_List, create_dissector_handle(dissect_DRBs_Setup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SRBs_Setup_List, create_dissector_handle(dissect_SRBs_Setup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_FailedToBeSetup_List, create_dissector_handle(dissect_DRBs_FailedToBeSetup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SRBs_FailedToBeSetup_List, create_dissector_handle(dissect_SRBs_FailedToBeSetup_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DLTunnels_ToBeSetup_list, create_dissector_handle(dissect_DLTunnels_ToBeSetup_list_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_ULTunnels_ToBeSetup_list, create_dissector_handle(dissect_ULTunnels_ToBeSetup_list_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_TransmissionStopIndicator, create_dissector_handle(dissect_TransmissionStopIndicator_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_Required_ToBeModified_List, create_dissector_handle(dissect_DRBs_Required_ToBeModified_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_Required_ToBeReleased_List, create_dissector_handle(dissect_DRBs_Required_ToBeReleased_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SRBs_Required_ToBeReleased_List, create_dissector_handle(dissect_SRBs_Required_ToBeReleased_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_oldgNB_DU_F1AP_ID, create_dissector_handle(dissect_GNB_DU_F1AP_ID_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_SRBs_ToBeReleased_List, create_dissector_handle(dissect_SRBs_ToBeReleased_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.ies", id_DRBs_ModifiedConf_List, create_dissector_handle(dissect_DRBs_ModifiedConf_List_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_Reset, create_dissector_handle(dissect_Reset_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_Reset, create_dissector_handle(dissect_ResetAcknowledge_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_F1Setup, create_dissector_handle(dissect_F1SetupRequest_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_F1Setup, create_dissector_handle(dissect_F1SetupResponse_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.uout", id_F1Setup, create_dissector_handle(dissect_F1SetupFailure_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_gNBDUConfigurationUpdate, create_dissector_handle(dissect_GNBDUConfigurationUpdate_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_gNBDUConfigurationUpdate, create_dissector_handle(dissect_GNBDUConfigurationUpdateAcknowledge_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.uout", id_gNBDUConfigurationUpdate, create_dissector_handle(dissect_GNBDUConfigurationUpdateFailure_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_gNBCUConfigurationUpdate, create_dissector_handle(dissect_GNBCUConfigurationUpdate_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_gNBCUConfigurationUpdate, create_dissector_handle(dissect_GNBCUConfigurationUpdateAcknowledge_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.uout", id_gNBCUConfigurationUpdate, create_dissector_handle(dissect_GNBCUConfigurationUpdateFailure_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_UEContextSetup, create_dissector_handle(dissect_UEContextSetupRequest_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_UEContextSetup, create_dissector_handle(dissect_UEContextSetupResponse_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.uout", id_UEContextSetup, create_dissector_handle(dissect_UEContextSetupFailure_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_UEContextRelease, create_dissector_handle(dissect_UEContextReleaseCommand_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_UEContextRelease, create_dissector_handle(dissect_UEContextReleaseComplete_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_UEContextModification, create_dissector_handle(dissect_UEContextModificationRequest_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_UEContextModification, create_dissector_handle(dissect_UEContextModificationResponse_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.uout", id_UEContextModification, create_dissector_handle(dissect_UEContextModificationFailure_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_UEContextModificationRequired, create_dissector_handle(dissect_UEContextModificationRequired_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.sout", id_UEContextModificationRequired, create_dissector_handle(dissect_UEContextModificationConfirm_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_ErrorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_UEContextReleaseRequest, create_dissector_handle(dissect_UEContextReleaseRequest_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_DLRRCMessageTransfer, create_dissector_handle(dissect_DLRRCMessageTransfer_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_ULRRCMessageTransfer, create_dissector_handle(dissect_ULRRCMessageTransfer_PDU, proto_f1ap));
+ dissector_add_uint("f1ap.proc.imsg", id_privateMessage, create_dissector_handle(dissect_PrivateMessage_PDU, proto_f1ap));
+
+
+/*--- End of included file: packet-f1ap-dis-tab.c ---*/
+#line 222 "./asn1/f1ap/packet-f1ap-template.c"
+}
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c
index 1fff4a5a75..37bf2e9cd2 100644
--- a/epan/dissectors/packet-nr-rrc.c
+++ b/epan/dissectors/packet-nr-rrc.c
@@ -140,8 +140,10 @@ static int hf_nr_rrc_nr_rrc_SCG_ConfigInfo_PDU = -1; /* SCG_ConfigInfo */
static int hf_nr_rrc_BCCH_BCH_Message_PDU = -1; /* BCCH_BCH_Message */
static int hf_nr_rrc_DL_DCCH_Message_PDU = -1; /* DL_DCCH_Message */
static int hf_nr_rrc_nr_rrc_UL_DCCH_Message_PDU = -1; /* UL_DCCH_Message */
+static int hf_nr_rrc_nr_rrc_MIB_PDU = -1; /* MIB */
static int hf_nr_rrc_nr_rrc_RRCReconfiguration_PDU = -1; /* RRCReconfiguration */
static int hf_nr_rrc_nr_rrc_RRCReconfigurationComplete_PDU = -1; /* RRCReconfigurationComplete */
+static int hf_nr_rrc_nr_rrc_CellGroupConfig_PDU = -1; /* CellGroupConfig */
static int hf_nr_rrc_nr_rrc_MeasResults_PDU = -1; /* MeasResults */
static int hf_nr_rrc_nr_rrc_RadioBearerConfig_PDU = -1; /* RadioBearerConfig */
static int hf_nr_rrc_nr_rrc_UE_MRDC_Capability_PDU = -1; /* UE_MRDC_Capability */
@@ -12624,6 +12626,14 @@ int dissect_nr_rrc_UL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
offset += 7; offset >>= 3;
return offset;
}
+int dissect_nr_rrc_MIB_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_MIB(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_MIB_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
int dissect_nr_rrc_RRCReconfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12640,6 +12650,14 @@ int dissect_nr_rrc_RRCReconfigurationComplete_PDU(tvbuff_t *tvb _U_, packet_info
offset += 7; offset >>= 3;
return offset;
}
+int dissect_nr_rrc_CellGroupConfig_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_CellGroupConfig(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_CellGroupConfig_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
int dissect_nr_rrc_MeasResults_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12717,6 +12735,10 @@ void proto_register_nr_rrc(void) {
{ "UL-DCCH-Message", "nr-rrc.UL_DCCH_Message_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_nr_rrc_MIB_PDU,
+ { "MIB", "nr-rrc.MIB_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_nr_rrc_RRCReconfiguration_PDU,
{ "RRCReconfiguration", "nr-rrc.RRCReconfiguration_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -12725,6 +12747,10 @@ void proto_register_nr_rrc(void) {
{ "RRCReconfigurationComplete", "nr-rrc.RRCReconfigurationComplete_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_nr_rrc_CellGroupConfig_PDU,
+ { "CellGroupConfig", "nr-rrc.CellGroupConfig_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_nr_rrc_MeasResults_PDU,
{ "MeasResults", "nr-rrc.MeasResults_element",
FT_NONE, BASE_NONE, NULL, 0,
diff --git a/epan/dissectors/packet-nr-rrc.h b/epan/dissectors/packet-nr-rrc.h
index 3f1de1435a..b261aa72b1 100644
--- a/epan/dissectors/packet-nr-rrc.h
+++ b/epan/dissectors/packet-nr-rrc.h
@@ -24,8 +24,10 @@
#line 1 "./asn1/nr-rrc/packet-nr-rrc-exp.h"
int dissect_nr_rrc_SCG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+int dissect_nr_rrc_MIB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_RRCReconfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_RRCReconfigurationComplete_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+int dissect_nr_rrc_CellGroupConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_MeasResults_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_RadioBearerConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UE_MRDC_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
diff --git a/epan/dissectors/packet-x2ap.c b/epan/dissectors/packet-x2ap.c
index 91863c0cdc..8230974d8c 100644
--- a/epan/dissectors/packet-x2ap.c
+++ b/epan/dissectors/packet-x2ap.c
@@ -543,7 +543,7 @@ static int hf_x2ap_MDT_Configuration_PDU = -1; /* MDT_Configuration */
static int hf_x2ap_MDTPLMNList_PDU = -1; /* MDTPLMNList */
static int hf_x2ap_MDT_Location_Info_PDU = -1; /* MDT_Location_Info */
static int hf_x2ap_Measurement_ID_PDU = -1; /* Measurement_ID */
-static int hf_x2ap_MeNBResourceCoordinationInformation_PDU = -1; /* MeNBResourceCoordinationInformation */
+static int hf_x2ap_x2ap_MeNBResourceCoordinationInformation_PDU = -1; /* MeNBResourceCoordinationInformation */
static int hf_x2ap_MeNBtoSeNBContainer_PDU = -1; /* MeNBtoSeNBContainer */
static int hf_x2ap_MBMS_Service_Area_Identity_List_PDU = -1; /* MBMS_Service_Area_Identity_List */
static int hf_x2ap_MBSFN_Subframe_Infolist_PDU = -1; /* MBSFN_Subframe_Infolist */
@@ -580,7 +580,7 @@ static int hf_x2ap_SecondaryRATUsageReport_Item_PDU = -1; /* SecondaryRATUsageR
static int hf_x2ap_SeNBSecurityKey_PDU = -1; /* SeNBSecurityKey */
static int hf_x2ap_SeNBtoMeNBContainer_PDU = -1; /* SeNBtoMeNBContainer */
static int hf_x2ap_ServedCells_PDU = -1; /* ServedCells */
-static int hf_x2ap_SgNBResourceCoordinationInformation_PDU = -1; /* SgNBResourceCoordinationInformation */
+static int hf_x2ap_x2ap_SgNBResourceCoordinationInformation_PDU = -1; /* SgNBResourceCoordinationInformation */
static int hf_x2ap_SgNB_UE_X2AP_ID_PDU = -1; /* SgNB_UE_X2AP_ID */
static int hf_x2ap_SIPTOBearerDeactivationIndication_PDU = -1; /* SIPTOBearerDeactivationIndication */
static int hf_x2ap_ShortMAC_I_PDU = -1; /* ShortMAC_I */
@@ -1993,7 +1993,7 @@ static value_string_ext x2ap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(x2ap
static int
dissect_x2ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "./asn1/x2ap/x2ap.cnf"
+#line 74 "./asn1/x2ap/x2ap.cnf"
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &x2ap_data->procedure_code, FALSE);
@@ -2283,14 +2283,14 @@ static value_string_ext x2ap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(x2ap
static int
dissect_x2ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 53 "./asn1/x2ap/x2ap.cnf"
+#line 61 "./asn1/x2ap/x2ap.cnf"
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &x2ap_data->protocol_ie_id, FALSE);
-#line 56 "./asn1/x2ap/x2ap.cnf"
+#line 64 "./asn1/x2ap/x2ap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(x2ap_data->protocol_ie_id, &x2ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -2309,7 +2309,7 @@ static const value_string x2ap_TriggeringMessage_vals[] = {
static int
dissect_x2ap_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 70 "./asn1/x2ap/x2ap.cnf"
+#line 78 "./asn1/x2ap/x2ap.cnf"
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3, &x2ap_data->triggering_message, FALSE, 0, NULL);
@@ -2830,7 +2830,7 @@ dissect_x2ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_x2ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 352 "./asn1/x2ap/x2ap.cnf"
+#line 360 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
@@ -2911,7 +2911,7 @@ dissect_x2ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_x2ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 336 "./asn1/x2ap/x2ap.cnf"
+#line 344 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &parameter_tvb);
@@ -4369,7 +4369,7 @@ dissect_x2ap_DL_Total_PRB_usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_x2ap_T_transmissionModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 481 "./asn1/x2ap/x2ap.cnf"
+#line 489 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &parameter_tvb, NULL);
@@ -4643,7 +4643,7 @@ dissect_x2ap_ENB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_x2ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 388 "./asn1/x2ap/x2ap.cnf"
+#line 396 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16, 16, TRUE, &parameter_tvb, NULL);
@@ -4847,7 +4847,7 @@ dissect_x2ap_E_RABUsageReportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_x2ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 548 "./asn1/x2ap/x2ap.cnf"
+#line 556 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *timestamp_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4, 4, FALSE, &timestamp_tvb);
@@ -4855,7 +4855,7 @@ dissect_x2ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
-#line 552 "./asn1/x2ap/x2ap.cnf"
+#line 560 "./asn1/x2ap/x2ap.cnf"
if (timestamp_tvb) {
proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
}
@@ -4868,7 +4868,7 @@ dissect_x2ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_x2ap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 557 "./asn1/x2ap/x2ap.cnf"
+#line 565 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *timestamp_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4, 4, FALSE, &timestamp_tvb);
@@ -4876,7 +4876,7 @@ dissect_x2ap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
-#line 561 "./asn1/x2ap/x2ap.cnf"
+#line 569 "./asn1/x2ap/x2ap.cnf"
if (timestamp_tvb) {
proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
}
@@ -5056,7 +5056,7 @@ dissect_x2ap_EUTRA_Mode_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_x2ap_EUTRANTraceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 285 "./asn1/x2ap/x2ap.cnf"
+#line 293 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -5314,7 +5314,7 @@ dissect_x2ap_ForbiddenTAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_x2ap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 345 "./asn1/x2ap/x2ap.cnf"
+#line 353 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &parameter_tvb);
@@ -5474,7 +5474,7 @@ dissect_x2ap_GlobalGNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_x2ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "./asn1/x2ap/x2ap.cnf"
+#line 108 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
int len;
@@ -5534,7 +5534,7 @@ dissect_x2ap_GTPtunnelEndpoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_x2ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 381 "./asn1/x2ap/x2ap.cnf"
+#line 389 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &parameter_tvb);
@@ -5582,7 +5582,7 @@ dissect_x2ap_GUGroupIDList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_x2ap_MME_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 372 "./asn1/x2ap/x2ap.cnf"
+#line 380 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
1, 1, FALSE, &parameter_tvb);
@@ -5686,7 +5686,7 @@ dissect_x2ap_HWLoadIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_x2ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 403 "./asn1/x2ap/x2ap.cnf"
+#line 411 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16, 16, TRUE, &parameter_tvb, NULL);
@@ -5712,7 +5712,7 @@ dissect_x2ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_x2ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 296 "./asn1/x2ap/x2ap.cnf"
+#line 304 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &parameter_tvb, NULL);
@@ -5836,7 +5836,7 @@ dissect_x2ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_x2ap_LHN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 502 "./asn1/x2ap/x2ap.cnf"
+#line 510 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
32, 256, FALSE, &parameter_tvb);
@@ -6284,7 +6284,7 @@ dissect_x2ap_MDT_Activation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_x2ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 433 "./asn1/x2ap/x2ap.cnf"
+#line 441 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &parameter_tvb, NULL);
@@ -6348,7 +6348,7 @@ dissect_x2ap_MDTPLMNList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_x2ap_MDT_Location_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 458 "./asn1/x2ap/x2ap.cnf"
+#line 466 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
8, 8, FALSE, &parameter_tvb, NULL);
@@ -6400,7 +6400,7 @@ dissect_x2ap_MeNBResourceCoordinationInformation(tvbuff_t *tvb _U_, int offset _
static int
dissect_x2ap_MeNBtoSeNBContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 219 "./asn1/x2ap/x2ap.cnf"
+#line 227 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6605,7 +6605,7 @@ dissect_x2ap_MultibandInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_x2ap_MeNBtoSgNBContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 237 "./asn1/x2ap/x2ap.cnf"
+#line 245 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
@@ -6650,7 +6650,7 @@ dissect_x2ap_MCGSplitSRBs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_x2ap_RRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 273 "./asn1/x2ap/x2ap.cnf"
+#line 281 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
@@ -6673,7 +6673,7 @@ dissect_x2ap_RRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_x2ap_T_rrcContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 263 "./asn1/x2ap/x2ap.cnf"
+#line 271 "./asn1/x2ap/x2ap.cnf"
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
x2ap_data->rrc_container_type = RRC_CONTAINER_TYPE_PDCP_C_PDU;
@@ -6721,7 +6721,7 @@ dissect_x2ap_MCGSplitSRB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_x2ap_T_uENRMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 268 "./asn1/x2ap/x2ap.cnf"
+#line 276 "./asn1/x2ap/x2ap.cnf"
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
x2ap_data->rrc_container_type = RRC_CONTAINER_TYPE_NR_UE_MEAS_REPORT;
@@ -6880,7 +6880,7 @@ dissect_x2ap_NRrestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_x2ap_NRencryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 518 "./asn1/x2ap/x2ap.cnf"
+#line 526 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16, 16, TRUE, &parameter_tvb, NULL);
@@ -6906,7 +6906,7 @@ dissect_x2ap_NRencryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_x2ap_NRintegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 533 "./asn1/x2ap/x2ap.cnf"
+#line 541 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
16, 16, TRUE, &parameter_tvb, NULL);
@@ -7001,7 +7001,7 @@ dissect_x2ap_PDCPChangeIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_x2ap_Port_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 125 "./asn1/x2ap/x2ap.cnf"
+#line 133 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &parameter_tvb);
@@ -7305,7 +7305,7 @@ dissect_x2ap_RelativeNarrowbandTxPower(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_x2ap_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 160 "./asn1/x2ap/x2ap.cnf"
+#line 168 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
32, 32, FALSE, &parameter_tvb, NULL);
@@ -7420,7 +7420,7 @@ dissect_x2ap_RLCMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_x2ap_RRC_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 136 "./asn1/x2ap/x2ap.cnf"
+#line 144 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
@@ -7636,7 +7636,7 @@ dissect_x2ap_SeNBSecurityKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_x2ap_SeNBtoMeNBContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 228 "./asn1/x2ap/x2ap.cnf"
+#line 236 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -7792,7 +7792,7 @@ dissect_x2ap_SgNBSecurityKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_x2ap_SgNBtoMeNBContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 254 "./asn1/x2ap/x2ap.cnf"
+#line 262 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -7837,7 +7837,7 @@ dissect_x2ap_TargetCellInUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_x2ap_TargeteNBtoSource_eNBTransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 81 "./asn1/x2ap/x2ap.cnf"
+#line 89 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
@@ -7909,7 +7909,7 @@ dissect_x2ap_TraceDepth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_x2ap_TraceCollectionEntityIPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 311 "./asn1/x2ap/x2ap.cnf"
+#line 319 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
int len;
@@ -8048,7 +8048,7 @@ dissect_x2ap_UE_HistoryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_x2ap_UE_HistoryInformationFromTheUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "./asn1/x2ap/x2ap.cnf"
+#line 159 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8098,7 +8098,7 @@ dissect_x2ap_UE_X2AP_ID_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_x2ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 201 "./asn1/x2ap/x2ap.cnf"
+#line 209 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8118,7 +8118,7 @@ dissect_x2ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_x2ap_UE_RLF_Report_Container_for_extended_bands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 210 "./asn1/x2ap/x2ap.cnf"
+#line 218 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8370,7 +8370,7 @@ static const per_sequence_t HandoverRequest_sequence[] = {
static int
dissect_x2ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 574 "./asn1/x2ap/x2ap.cnf"
+#line 582 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8501,7 +8501,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = {
static int
dissect_x2ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 576 "./asn1/x2ap/x2ap.cnf"
+#line 584 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8549,7 +8549,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = {
static int
dissect_x2ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 578 "./asn1/x2ap/x2ap.cnf"
+#line 586 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8566,7 +8566,7 @@ static const per_sequence_t HandoverReport_sequence[] = {
static int
dissect_x2ap_HandoverReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 616 "./asn1/x2ap/x2ap.cnf"
+#line 624 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverReport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8583,7 +8583,7 @@ static const per_sequence_t SNStatusTransfer_sequence[] = {
static int
dissect_x2ap_SNStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 580 "./asn1/x2ap/x2ap.cnf"
+#line 588 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNStatusTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8632,7 +8632,7 @@ static const per_sequence_t UEContextRelease_sequence[] = {
static int
dissect_x2ap_UEContextRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 582 "./asn1/x2ap/x2ap.cnf"
+#line 590 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextRelease");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8649,7 +8649,7 @@ static const per_sequence_t HandoverCancel_sequence[] = {
static int
dissect_x2ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 584 "./asn1/x2ap/x2ap.cnf"
+#line 592 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8666,7 +8666,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_x2ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 586 "./asn1/x2ap/x2ap.cnf"
+#line 594 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8683,7 +8683,7 @@ static const per_sequence_t ResetRequest_sequence[] = {
static int
dissect_x2ap_ResetRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 588 "./asn1/x2ap/x2ap.cnf"
+#line 596 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8700,7 +8700,7 @@ static const per_sequence_t ResetResponse_sequence[] = {
static int
dissect_x2ap_ResetResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 590 "./asn1/x2ap/x2ap.cnf"
+#line 598 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8717,7 +8717,7 @@ static const per_sequence_t X2SetupRequest_sequence[] = {
static int
dissect_x2ap_X2SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 592 "./asn1/x2ap/x2ap.cnf"
+#line 600 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2SetupRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8734,7 +8734,7 @@ static const per_sequence_t X2SetupResponse_sequence[] = {
static int
dissect_x2ap_X2SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 594 "./asn1/x2ap/x2ap.cnf"
+#line 602 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2SetupResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8751,7 +8751,7 @@ static const per_sequence_t X2SetupFailure_sequence[] = {
static int
dissect_x2ap_X2SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 596 "./asn1/x2ap/x2ap.cnf"
+#line 604 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2SetupFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8768,7 +8768,7 @@ static const per_sequence_t LoadInformation_sequence[] = {
static int
dissect_x2ap_LoadInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 598 "./asn1/x2ap/x2ap.cnf"
+#line 606 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LoadInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8817,7 +8817,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = {
static int
dissect_x2ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 600 "./asn1/x2ap/x2ap.cnf"
+#line 608 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8879,7 +8879,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_x2ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 602 "./asn1/x2ap/x2ap.cnf"
+#line 610 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8896,7 +8896,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = {
static int
dissect_x2ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 604 "./asn1/x2ap/x2ap.cnf"
+#line 612 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8913,7 +8913,7 @@ static const per_sequence_t ResourceStatusRequest_sequence[] = {
static int
dissect_x2ap_ResourceStatusRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 606 "./asn1/x2ap/x2ap.cnf"
+#line 614 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8992,7 +8992,7 @@ static const per_sequence_t ResourceStatusResponse_sequence[] = {
static int
dissect_x2ap_ResourceStatusResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 608 "./asn1/x2ap/x2ap.cnf"
+#line 616 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9049,7 +9049,7 @@ dissect_x2ap_MeasurementInitiationResult_Item(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_x2ap_T_measurementFailedReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "./asn1/x2ap/x2ap.cnf"
+#line 187 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -9100,7 +9100,7 @@ static const per_sequence_t ResourceStatusFailure_sequence[] = {
static int
dissect_x2ap_ResourceStatusFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 610 "./asn1/x2ap/x2ap.cnf"
+#line 618 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9147,7 +9147,7 @@ static const per_sequence_t ResourceStatusUpdate_sequence[] = {
static int
dissect_x2ap_ResourceStatusUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 612 "./asn1/x2ap/x2ap.cnf"
+#line 620 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9196,7 +9196,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_x2ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 614 "./asn1/x2ap/x2ap.cnf"
+#line 622 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9213,7 +9213,7 @@ static const per_sequence_t MobilityChangeRequest_sequence[] = {
static int
dissect_x2ap_MobilityChangeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 620 "./asn1/x2ap/x2ap.cnf"
+#line 628 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MobilityChangeRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9230,7 +9230,7 @@ static const per_sequence_t MobilityChangeAcknowledge_sequence[] = {
static int
dissect_x2ap_MobilityChangeAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 622 "./asn1/x2ap/x2ap.cnf"
+#line 630 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MobilityChangeAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9247,7 +9247,7 @@ static const per_sequence_t MobilityChangeFailure_sequence[] = {
static int
dissect_x2ap_MobilityChangeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 624 "./asn1/x2ap/x2ap.cnf"
+#line 632 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MobilityChangeFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9264,7 +9264,7 @@ static const per_sequence_t RLFIndication_sequence[] = {
static int
dissect_x2ap_RLFIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 618 "./asn1/x2ap/x2ap.cnf"
+#line 626 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RLFIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9281,7 +9281,7 @@ static const per_sequence_t CellActivationRequest_sequence[] = {
static int
dissect_x2ap_CellActivationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 626 "./asn1/x2ap/x2ap.cnf"
+#line 634 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9327,7 +9327,7 @@ static const per_sequence_t CellActivationResponse_sequence[] = {
static int
dissect_x2ap_CellActivationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 628 "./asn1/x2ap/x2ap.cnf"
+#line 636 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9373,7 +9373,7 @@ static const per_sequence_t CellActivationFailure_sequence[] = {
static int
dissect_x2ap_CellActivationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 630 "./asn1/x2ap/x2ap.cnf"
+#line 638 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9390,7 +9390,7 @@ static const per_sequence_t X2Release_sequence[] = {
static int
dissect_x2ap_X2Release(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 632 "./asn1/x2ap/x2ap.cnf"
+#line 640 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2Release");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9407,7 +9407,7 @@ static const per_sequence_t X2APMessageTransfer_sequence[] = {
static int
dissect_x2ap_X2APMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 634 "./asn1/x2ap/x2ap.cnf"
+#line 642 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2APMessageTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9436,7 +9436,7 @@ dissect_x2ap_RNL_Header(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_x2ap_X2AP_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 507 "./asn1/x2ap/x2ap.cnf"
+#line 515 "./asn1/x2ap/x2ap.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &parameter_tvb);
@@ -9459,7 +9459,7 @@ static const per_sequence_t SeNBAdditionRequest_sequence[] = {
static int
dissect_x2ap_SeNBAdditionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 642 "./asn1/x2ap/x2ap.cnf"
+#line 650 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBAdditionRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9547,7 +9547,7 @@ static const per_sequence_t SeNBAdditionRequestAcknowledge_sequence[] = {
static int
dissect_x2ap_SeNBAdditionRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 644 "./asn1/x2ap/x2ap.cnf"
+#line 652 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBAdditionRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9634,7 +9634,7 @@ static const per_sequence_t SeNBAdditionRequestReject_sequence[] = {
static int
dissect_x2ap_SeNBAdditionRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 646 "./asn1/x2ap/x2ap.cnf"
+#line 654 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBAdditionRequestReject");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9651,7 +9651,7 @@ static const per_sequence_t SeNBReconfigurationComplete_sequence[] = {
static int
dissect_x2ap_SeNBReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 648 "./asn1/x2ap/x2ap.cnf"
+#line 656 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBReconfigurationComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9721,7 +9721,7 @@ static const per_sequence_t SeNBModificationRequest_sequence[] = {
static int
dissect_x2ap_SeNBModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 650 "./asn1/x2ap/x2ap.cnf"
+#line 658 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBModificationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9968,7 +9968,7 @@ static const per_sequence_t SeNBModificationRequestAcknowledge_sequence[] = {
static int
dissect_x2ap_SeNBModificationRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 652 "./asn1/x2ap/x2ap.cnf"
+#line 660 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBModificationRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10189,7 +10189,7 @@ static const per_sequence_t SeNBModificationRequestReject_sequence[] = {
static int
dissect_x2ap_SeNBModificationRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 654 "./asn1/x2ap/x2ap.cnf"
+#line 662 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBModificationRequestReject");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10206,7 +10206,7 @@ static const per_sequence_t SeNBModificationRequired_sequence[] = {
static int
dissect_x2ap_SeNBModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 656 "./asn1/x2ap/x2ap.cnf"
+#line 664 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBModificationRequired");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10253,7 +10253,7 @@ static const per_sequence_t SeNBModificationConfirm_sequence[] = {
static int
dissect_x2ap_SeNBModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 658 "./asn1/x2ap/x2ap.cnf"
+#line 666 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBModificationConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10270,7 +10270,7 @@ static const per_sequence_t SeNBModificationRefuse_sequence[] = {
static int
dissect_x2ap_SeNBModificationRefuse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 660 "./asn1/x2ap/x2ap.cnf"
+#line 668 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBModificationRefuse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10287,7 +10287,7 @@ static const per_sequence_t SeNBReleaseRequest_sequence[] = {
static int
dissect_x2ap_SeNBReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 662 "./asn1/x2ap/x2ap.cnf"
+#line 670 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBReleaseRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10373,7 +10373,7 @@ static const per_sequence_t SeNBReleaseRequired_sequence[] = {
static int
dissect_x2ap_SeNBReleaseRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 664 "./asn1/x2ap/x2ap.cnf"
+#line 672 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBReleaseRequired");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10390,7 +10390,7 @@ static const per_sequence_t SeNBReleaseConfirm_sequence[] = {
static int
dissect_x2ap_SeNBReleaseConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 666 "./asn1/x2ap/x2ap.cnf"
+#line 674 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBReleaseConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10476,7 +10476,7 @@ static const per_sequence_t SeNBCounterCheckRequest_sequence[] = {
static int
dissect_x2ap_SeNBCounterCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 668 "./asn1/x2ap/x2ap.cnf"
+#line 676 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SeNBCounterCheckRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10534,7 +10534,7 @@ static const per_sequence_t X2RemovalRequest_sequence[] = {
static int
dissect_x2ap_X2RemovalRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 636 "./asn1/x2ap/x2ap.cnf"
+#line 644 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2RemovalRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10551,7 +10551,7 @@ static const per_sequence_t X2RemovalResponse_sequence[] = {
static int
dissect_x2ap_X2RemovalResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 638 "./asn1/x2ap/x2ap.cnf"
+#line 646 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2RemovalResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10568,7 +10568,7 @@ static const per_sequence_t X2RemovalFailure_sequence[] = {
static int
dissect_x2ap_X2RemovalFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 640 "./asn1/x2ap/x2ap.cnf"
+#line 648 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "X2RemovalFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10585,7 +10585,7 @@ static const per_sequence_t RetrieveUEContextRequest_sequence[] = {
static int
dissect_x2ap_RetrieveUEContextRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 670 "./asn1/x2ap/x2ap.cnf"
+#line 678 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10602,7 +10602,7 @@ static const per_sequence_t RetrieveUEContextResponse_sequence[] = {
static int
dissect_x2ap_RetrieveUEContextResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 672 "./asn1/x2ap/x2ap.cnf"
+#line 680 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10675,7 +10675,7 @@ static const per_sequence_t RetrieveUEContextFailure_sequence[] = {
static int
dissect_x2ap_RetrieveUEContextFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 674 "./asn1/x2ap/x2ap.cnf"
+#line 682 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10692,7 +10692,7 @@ static const per_sequence_t SgNBAdditionRequest_sequence[] = {
static int
dissect_x2ap_SgNBAdditionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 676 "./asn1/x2ap/x2ap.cnf"
+#line 684 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBAdditionRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10799,7 +10799,7 @@ static const per_sequence_t SgNBAdditionRequestAcknowledge_sequence[] = {
static int
dissect_x2ap_SgNBAdditionRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 678 "./asn1/x2ap/x2ap.cnf"
+#line 686 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBAdditionRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10905,7 +10905,7 @@ static const per_sequence_t SgNBAdditionRequestReject_sequence[] = {
static int
dissect_x2ap_SgNBAdditionRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 680 "./asn1/x2ap/x2ap.cnf"
+#line 688 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBAdditionRequestReject");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10922,7 +10922,7 @@ static const per_sequence_t SgNBReconfigurationComplete_sequence[] = {
static int
dissect_x2ap_SgNBReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 682 "./asn1/x2ap/x2ap.cnf"
+#line 690 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBReconfigurationComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10991,7 +10991,7 @@ static const per_sequence_t SgNBModificationRequest_sequence[] = {
static int
dissect_x2ap_SgNBModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 684 "./asn1/x2ap/x2ap.cnf"
+#line 692 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBModificationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11290,7 +11290,7 @@ static const per_sequence_t SgNBModificationRequestAcknowledge_sequence[] = {
static int
dissect_x2ap_SgNBModificationRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 686 "./asn1/x2ap/x2ap.cnf"
+#line 694 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBModificationRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11562,7 +11562,7 @@ static const per_sequence_t SgNBModificationRequestReject_sequence[] = {
static int
dissect_x2ap_SgNBModificationRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 688 "./asn1/x2ap/x2ap.cnf"
+#line 696 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBModificationRequestReject");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11579,7 +11579,7 @@ static const per_sequence_t SgNBModificationRequired_sequence[] = {
static int
dissect_x2ap_SgNBModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 690 "./asn1/x2ap/x2ap.cnf"
+#line 698 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBModificationRequired");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11710,7 +11710,7 @@ static const per_sequence_t SgNBModificationConfirm_sequence[] = {
static int
dissect_x2ap_SgNBModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 692 "./asn1/x2ap/x2ap.cnf"
+#line 700 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBModificationConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11727,7 +11727,7 @@ static const per_sequence_t SgNBModificationRefuse_sequence[] = {
static int
dissect_x2ap_SgNBModificationRefuse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 694 "./asn1/x2ap/x2ap.cnf"
+#line 702 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBModificationRefuse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11744,7 +11744,7 @@ static const per_sequence_t SgNBReleaseRequest_sequence[] = {
static int
dissect_x2ap_SgNBReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 696 "./asn1/x2ap/x2ap.cnf"
+#line 704 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBReleaseRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11845,7 +11845,7 @@ static const per_sequence_t SgNBReleaseRequestAcknowledge_sequence[] = {
static int
dissect_x2ap_SgNBReleaseRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 698 "./asn1/x2ap/x2ap.cnf"
+#line 706 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBReleaseRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11862,7 +11862,7 @@ static const per_sequence_t SgNBReleaseRequestReject_sequence[] = {
static int
dissect_x2ap_SgNBReleaseRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 700 "./asn1/x2ap/x2ap.cnf"
+#line 708 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBReleaseRequestReject");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11879,7 +11879,7 @@ static const per_sequence_t SgNBReleaseRequired_sequence[] = {
static int
dissect_x2ap_SgNBReleaseRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 702 "./asn1/x2ap/x2ap.cnf"
+#line 710 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBReleaseRequired");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11896,7 +11896,7 @@ static const per_sequence_t SgNBReleaseConfirm_sequence[] = {
static int
dissect_x2ap_SgNBReleaseConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 704 "./asn1/x2ap/x2ap.cnf"
+#line 712 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBReleaseConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -11997,7 +11997,7 @@ static const per_sequence_t SgNBCounterCheckRequest_sequence[] = {
static int
dissect_x2ap_SgNBCounterCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 706 "./asn1/x2ap/x2ap.cnf"
+#line 714 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBCounterCheckRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12045,7 +12045,7 @@ static const per_sequence_t SgNBChangeRequired_sequence[] = {
static int
dissect_x2ap_SgNBChangeRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 708 "./asn1/x2ap/x2ap.cnf"
+#line 716 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBChangeRequired");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12062,7 +12062,7 @@ static const per_sequence_t SgNBChangeConfirm_sequence[] = {
static int
dissect_x2ap_SgNBChangeConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 710 "./asn1/x2ap/x2ap.cnf"
+#line 718 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBChangeConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12163,7 +12163,7 @@ static const per_sequence_t RRCTransfer_sequence[] = {
static int
dissect_x2ap_RRCTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 714 "./asn1/x2ap/x2ap.cnf"
+#line 722 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12180,7 +12180,7 @@ static const per_sequence_t SgNBChangeRefuse_sequence[] = {
static int
dissect_x2ap_SgNBChangeRefuse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 712 "./asn1/x2ap/x2ap.cnf"
+#line 720 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SgNBChangeRefuse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12197,7 +12197,7 @@ static const per_sequence_t ENDCX2SetupRequest_sequence[] = {
static int
dissect_x2ap_ENDCX2SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 716 "./asn1/x2ap/x2ap.cnf"
+#line 724 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCX2SetupRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12438,7 +12438,7 @@ static const per_sequence_t ENDCX2SetupResponse_sequence[] = {
static int
dissect_x2ap_ENDCX2SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 718 "./asn1/x2ap/x2ap.cnf"
+#line 726 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCX2SetupResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12477,7 +12477,7 @@ static const per_sequence_t ENDCX2SetupFailure_sequence[] = {
static int
dissect_x2ap_ENDCX2SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 720 "./asn1/x2ap/x2ap.cnf"
+#line 728 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCX2SetupFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12494,7 +12494,7 @@ static const per_sequence_t ENDCConfigurationUpdate_sequence[] = {
static int
dissect_x2ap_ENDCConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 722 "./asn1/x2ap/x2ap.cnf"
+#line 730 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCConfigurationUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12624,7 +12624,7 @@ static const per_sequence_t ENDCConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_x2ap_ENDCConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 724 "./asn1/x2ap/x2ap.cnf"
+#line 732 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCConfigurationUpdateAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12661,7 +12661,7 @@ static const per_sequence_t ENDCConfigurationUpdateFailure_sequence[] = {
static int
dissect_x2ap_ENDCConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 726 "./asn1/x2ap/x2ap.cnf"
+#line 734 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCConfigurationUpdateFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12678,7 +12678,7 @@ static const per_sequence_t ENDCCellActivationRequest_sequence[] = {
static int
dissect_x2ap_ENDCCellActivationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 730 "./asn1/x2ap/x2ap.cnf"
+#line 738 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCCellActivationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12724,7 +12724,7 @@ static const per_sequence_t ENDCCellActivationResponse_sequence[] = {
static int
dissect_x2ap_ENDCCellActivationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 732 "./asn1/x2ap/x2ap.cnf"
+#line 740 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCCellActivationResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -12770,7 +12770,7 @@ static const per_sequence_t ENDCCellActivationFailure_sequence[] = {
static int
dissect_x2ap_ENDCCellActivationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 734 "./asn1/x2ap/x2ap.cnf"
+#line 742 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENDCCellActivationFailure");
@@ -12788,7 +12788,7 @@ static const per_sequence_t SecondaryRATDataUsageReport_sequence[] = {
static int
dissect_x2ap_SecondaryRATDataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 728 "./asn1/x2ap/x2ap.cnf"
+#line 736 "./asn1/x2ap/x2ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATDataUsageReport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -13346,11 +13346,11 @@ static int dissect_Measurement_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
offset += 7; offset >>= 3;
return offset;
}
-static int dissect_MeNBResourceCoordinationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+int dissect_x2ap_MeNBResourceCoordinationInformation_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_x2ap_MeNBResourceCoordinationInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeNBResourceCoordinationInformation_PDU);
+ offset = dissect_x2ap_MeNBResourceCoordinationInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_x2ap_MeNBResourceCoordinationInformation_PDU);
offset += 7; offset >>= 3;
return offset;
}
@@ -13642,11 +13642,11 @@ static int dissect_ServedCells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pr
offset += 7; offset >>= 3;
return offset;
}
-static int dissect_SgNBResourceCoordinationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+int dissect_x2ap_SgNBResourceCoordinationInformation_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_x2ap_SgNBResourceCoordinationInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_SgNBResourceCoordinationInformation_PDU);
+ offset = dissect_x2ap_SgNBResourceCoordinationInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_x2ap_SgNBResourceCoordinationInformation_PDU);
offset += 7; offset >>= 3;
return offset;
}
@@ -15841,7 +15841,7 @@ void proto_register_x2ap(void) {
{ "Measurement-ID", "x2ap.Measurement_ID",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
- { &hf_x2ap_MeNBResourceCoordinationInformation_PDU,
+ { &hf_x2ap_x2ap_MeNBResourceCoordinationInformation_PDU,
{ "MeNBResourceCoordinationInformation", "x2ap.MeNBResourceCoordinationInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
@@ -15989,7 +15989,7 @@ void proto_register_x2ap(void) {
{ "ServedCells", "x2ap.ServedCells",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
- { &hf_x2ap_SgNBResourceCoordinationInformation_PDU,
+ { &hf_x2ap_x2ap_SgNBResourceCoordinationInformation_PDU,
{ "SgNBResourceCoordinationInformation", "x2ap.SgNBResourceCoordinationInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
@@ -19650,8 +19650,8 @@ proto_reg_handoff_x2ap(void)
dissector_add_uint("x2ap.ies", id_ServedNRcellsENDCX2ManagementList, create_dissector_handle(dissect_ServedNRcellsENDCX2ManagementList_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_UE_ContextReferenceAtSgNB, create_dissector_handle(dissect_UE_ContextReferenceAtSgNB_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_ActivationID, create_dissector_handle(dissect_ActivationID_PDU, proto_x2ap));
- dissector_add_uint("x2ap.ies", id_MeNBResourceCoordinationInformation, create_dissector_handle(dissect_MeNBResourceCoordinationInformation_PDU, proto_x2ap));
- dissector_add_uint("x2ap.ies", id_SgNBResourceCoordinationInformation, create_dissector_handle(dissect_SgNBResourceCoordinationInformation_PDU, proto_x2ap));
+ dissector_add_uint("x2ap.ies", id_MeNBResourceCoordinationInformation, create_dissector_handle(dissect_x2ap_MeNBResourceCoordinationInformation_PDU, proto_x2ap));
+ dissector_add_uint("x2ap.ies", id_SgNBResourceCoordinationInformation, create_dissector_handle(dissect_x2ap_SgNBResourceCoordinationInformation_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_ServedEUTRAcellsToModifyListENDCConfUpd, create_dissector_handle(dissect_ServedEUTRAcellsToModifyListENDCConfUpd_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_ServedEUTRAcellsToDeleteListENDCConfUpd, create_dissector_handle(dissect_ServedEUTRAcellsToDeleteListENDCConfUpd_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_ServedNRcellsToModifyListENDCConfUpd, create_dissector_handle(dissect_ServedNRcellsToModifyENDCConfUpdList_PDU, proto_x2ap));
diff --git a/epan/dissectors/packet-x2ap.h b/epan/dissectors/packet-x2ap.h
new file mode 100644
index 0000000000..9944ce0ded
--- /dev/null
+++ b/epan/dissectors/packet-x2ap.h
@@ -0,0 +1,44 @@
+/* Do not modify this file. Changes will be overwritten. */
+/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
+/* packet-x2ap.h */
+/* asn2wrs.py -p x2ap -c ./x2ap.cnf -s ./packet-x2ap-template -D . -O ../.. X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-Containers.asn X2AP-IEs.asn X2AP-PDU-Contents.asn X2AP-PDU-Descriptions.asn */
+
+/* Input file: packet-x2ap-template.h */
+
+#line 1 "./asn1/x2ap/packet-x2ap-template.h"
+/* packet-x2ap.h
+ * Routines for E-UTRAN X2 Application Protocol (S1AP) packet dissection
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef PACKET_X2AP_H
+#define PACKET_X2AP_H
+
+
+/*--- Included file: packet-x2ap-exp.h ---*/
+#line 1 "./asn1/x2ap/packet-x2ap-exp.h"
+int dissect_x2ap_MeNBResourceCoordinationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+int dissect_x2ap_SgNBResourceCoordinationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+
+/*--- End of included file: packet-x2ap-exp.h ---*/
+#line 15 "./asn1/x2ap/packet-x2ap-template.h"
+
+#endif /* PACKET_X2AP_H */
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */