aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-07-06 14:37:48 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2018-07-06 13:40:50 +0000
commitfed08d380f04e706fa6da9d5c3a4fb8a2e09f724 (patch)
treede580fe9c9a8738be30f41e99f0b09e385d5a1dc
parentcaa8efa0d2435c527bb947c3fb3f1b4a610ef515 (diff)
E1AP: add dissector based on v15.0.0
Change-Id: Ic939d5f614de9c3b1204c92007b2aa3ee1e45f8f Reviewed-on: https://code.wireshark.org/review/28649 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r--docbook/release-notes.asciidoc1
-rw-r--r--epan/dissectors/CMakeLists.txt3
-rw-r--r--epan/dissectors/asn1/CMakeLists.txt1
-rw-r--r--epan/dissectors/asn1/e1ap/CMakeLists.txt43
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn51
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Constants.asn102
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Containers.asn152
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-IEs.asn1270
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn1008
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn290
-rw-r--r--epan/dissectors/asn1/e1ap/e1ap.cnf389
-rw-r--r--epan/dissectors/asn1/e1ap/packet-e1ap-template.c233
-rw-r--r--epan/dissectors/packet-e1ap.c7102
-rw-r--r--epan/sctpppids.h2
14 files changed, 10646 insertions, 1 deletions
diff --git a/docbook/release-notes.asciidoc b/docbook/release-notes.asciidoc
index a55c49c759..548bdf06ef 100644
--- a/docbook/release-notes.asciidoc
+++ b/docbook/release-notes.asciidoc
@@ -78,6 +78,7 @@ Exablaze trailers
Ubiquiti Discovery Protocol (UBDP)
Cisco Meraki Discovery Protocol (MDP)
XnAP (5G) protocol
+E1AP (5G) protocol
--
=== Updated Protocol Support
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt
index 2420123f9c..3bbcca5e86 100644
--- a/epan/dissectors/CMakeLists.txt
+++ b/epan/dissectors/CMakeLists.txt
@@ -92,7 +92,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-disp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-dop.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-dsp.c
- ${CMAKE_CURRENT_SOURCE_DIR}/packet-ecp.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-e1ap.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ess.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-f1ap.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ftam.c
@@ -938,6 +938,7 @@ set(DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-eapol.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-echo.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ecmp.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-ecp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ecp-oui.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-edonkey.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-egd.c
diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt
index 149e744b37..49f6bb37dc 100644
--- a/epan/dissectors/asn1/CMakeLists.txt
+++ b/epan/dissectors/asn1/CMakeLists.txt
@@ -31,6 +31,7 @@ set(ASN1_SRC_DIRS
disp
dop
dsp
+ e1ap
ess
f1ap
ftam
diff --git a/epan/dissectors/asn1/e1ap/CMakeLists.txt b/epan/dissectors/asn1/e1ap/CMakeLists.txt
new file mode 100644
index 0000000000..df3aafdec7
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/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 e1ap )
+
+set( PROTO_OPT )
+
+set( EXPORT_FILES
+ ${PROTOCOL_NAME}-exp.cnf
+)
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ E1AP-CommonDataTypes.asn
+ E1AP-Constants.asn
+ E1AP-Containers.asn
+ E1AP-IEs.asn
+ E1AP-PDU-Contents.asn
+ E1AP-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/e1ap/E1AP-CommonDataTypes.asn b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..cec41de7ec
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
@@ -0,0 +1,51 @@
+-- 3GPP TS 38.463 V15.0.0 (2018-06)
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+E1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) e1ap (5) version1 (1) e1ap-CommonDataTypes (3)}
+
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0.. maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..maxProtocolExtensions)
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
+
+END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
new file mode 100644
index 0000000000..6839eb6f3b
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
@@ -0,0 +1,102 @@
+-- 3GPP TS 38.463 V15.0.0 (2018-06)
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+
+E1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) e1ap (5) version1 (1) e1ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM E1AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-reset ProcedureCode ::= 0
+id-errorIndication ProcedureCode ::= 1
+id-privateMessage ProcedureCode ::= 2
+id-gNB-CU-UP-E1Setup ProcedureCode ::= 3
+id-gNB-CU-CP-E1Setup ProcedureCode ::= 4
+id-gNB-CU-UP-ConfigurationUpdate ProcedureCode ::= 5
+id-gNB-CU-CP-ConfigurationUpdate ProcedureCode ::= 6
+id-e1Release ProcedureCode ::= 7
+id-bearerContextSetup ProcedureCode ::= 8
+id-bearerContextModification ProcedureCode ::= 9
+id-bearerContextModificationRequired ProcedureCode ::= 10
+id-bearerContextRelease ProcedureCode ::= 11
+id-bearerContextReleaseRequest ProcedureCode ::= 12
+id-bearerContextInactivityNotification ProcedureCode ::= 13
+id-dLDataNotification ProcedureCode ::= 14
+id-dataUsageReport ProcedureCode ::= 15
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofErrors INTEGER ::= 256
+maxnoofSPLMNs INTEGER ::= 6
+maxnoofSliceItems INTEGER ::= 1024
+maxnoofIndividualE1ConnectionsToReset INTEGER ::= 65536
+maxnoofEUTRANQOSParameters INTEGER ::= 256
+maxnoofNGRANQOSParameters INTEGER ::= 256
+maxnoofDRBs INTEGER ::= 32
+maxnoofNRCGI INTEGER ::= 512
+maxnoofPDUSessionResource INTEGER ::= 256
+maxnoofQoSFlows INTEGER ::= 64
+maxnoofUPParameters INTEGER ::= 4
+maxnoofCellGroups INTEGER ::= 4
+maxnooftimeperiods INTEGER ::= 2
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-Cause ProtocolIE-ID ::= 0
+id-CriticalityDiagnostics ProtocolIE-ID ::= 1
+id-gNB-CU-CP-UE-E1AP-ID ProtocolIE-ID ::= 2
+id-gNB-CU-UP-UE-E1AP-ID ProtocolIE-ID ::= 3
+id-ResetType ProtocolIE-ID ::= 4
+id-UE-associatedLogicalE1-ConnectionItem ProtocolIE-ID ::= 5
+id-UE-associatedLogicalE1-ConnectionListResAck ProtocolIE-ID ::= 6
+id-gNB-CU-UP-ID ProtocolIE-ID ::= 7
+id-gNB-CU-UP-Name ProtocolIE-ID ::= 8
+id-gNB-CU-CP-Name ProtocolIE-ID ::= 9
+id-CNSupport ProtocolIE-ID ::= 10
+id-SupportedPLMNs ProtocolIE-ID ::= 11
+id-SupportedPLMNs-Item ProtocolIE-ID ::= 12
+id-TimeToWait ProtocolIE-ID ::= 13
+id-SecurityInformation ProtocolIE-ID ::= 14
+id-UEDLAggregateMaximumBitRate ProtocolIE-ID ::= 15
+id-System-BearerContextSetupRequest ProtocolIE-ID ::= 16
+id-System-BearerContextSetupResponse ProtocolIE-ID ::= 17
+id-BearerContextStatusChange ProtocolIE-ID ::= 18
+id-System-BearerContextModificationRequest ProtocolIE-ID ::= 19
+id-System-BearerContextModificationResponse ProtocolIE-ID ::= 20
+id-System-BearerContextModificationConfirm ProtocolIE-ID ::= 21
+id-System-BearerContextModificationRequired ProtocolIE-ID ::= 22
+id-DRB-Status-List ProtocolIE-ID ::= 23
+id-DRB-Status-Item ProtocolIE-ID ::= 24
+id-DRB-Activity-List ProtocolIE-ID ::= 25
+id-DRB-Activity-Item ProtocolIE-ID ::= 26
+id-Data-Usage-Report-List ProtocolIE-ID ::= 27
+
+END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
new file mode 100644
index 0000000000..c339429f28
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
@@ -0,0 +1,152 @@
+-- 3GPP TS 38.463 V15.0.0 (2018-06)
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+E1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) e1ap (5) version1 (1) e1ap-Containers (5) }
+
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+
+FROM E1AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+E1AP-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 Extensions
+--
+-- **************************************************************
+
+E1AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+E1AP-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 { E1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer { E1AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field { E1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id E1AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality E1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value E1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer { E1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField { E1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id E1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality E1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue E1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container { E1AP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field { E1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id E1AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality E1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value E1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
new file mode 100644
index 0000000000..b6c8d80c96
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
@@ -0,0 +1,1270 @@
+-- 3GPP TS 38.463 V15.0.0 (2018-06)
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+E1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) e1ap (5) version1 (1) e1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ maxnoofErrors,
+ maxnoofSliceItems,
+ maxnoofEUTRANQOSParameters,
+ maxnoofNGRANQOSParameters,
+ maxnoofDRBs,
+ maxnoofPDUSessionResource,
+ maxnoofQoSFlows,
+ maxnoofUPParameters,
+ maxnoofCellGroups,
+ maxnooftimeperiods,
+ maxnoofNRCGI
+
+FROM E1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+
+FROM E1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-SingleContainer{},
+ E1AP-PROTOCOL-EXTENSION,
+ E1AP-PROTOCOL-IES
+
+
+FROM E1AP-Containers;
+
+-- A
+
+AveragingWindow ::= INTEGER (0..63) -- this IE may need to be refined
+
+-- B
+
+BearerContextStatusChange ::= ENUMERATED {
+ suspend,
+ resume,
+ ...
+}
+
+BitRate ::= INTEGER (0..4000000000000,...)
+
+-- 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,
+ unknown-or-already-allocated-gnb-cu-cp-ue-e1ap-id,
+ unknown-or-already-allocated-gnb-cu-up-ue-e1ap-id,
+ unknown-or-inconsistent-pair-of-ue-e1ap-id,
+ interaction-with-other-procedure,
+ ...
+}
+
+CauseTransport ::= ENUMERATED {
+ unspecified,
+ transport-resource-unavailable,
+ ...
+}
+
+Cell-Group-Information ::= SEQUENCE (SIZE(1.. maxnoofCellGroups)) OF Cell-Group-Information-Item
+
+Cell-Group-Information-Item ::= SEQUENCE {
+ cell-Group-ID Cell-Gorup-ID,
+ uL-Configuration UL-Configuration OPTIONAL,
+ dL-TX-Stop DL-TX-Stop OPTIONAL,
+ rAT-Type RAT-Type OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Cell-Group-Information-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Cell-Group-Information-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Cell-Gorup-ID ::= INTEGER (0..3, ...)
+
+CipheringAlgorithm ::= ENUMERATED {
+ nEA0,
+ c-128-NEA1,
+ c-128-NEA2,
+ c-128-NEA3,
+ ...
+}
+
+CNSupport ::= ENUMERATED {
+ c-epc,
+ c-5gc,
+ both,
+ ...
+}
+
+ConfidentialityProtectionIndication ::= ENUMERATED {
+ required,
+ preferred,
+ not-needed,
+ ...
+}
+
+CP-TNL-Information ::= CHOICE {
+ endpoint-IP-Address TransportLayerAddress,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+CriticalityDiagnostics-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxnoofErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- D
+
+Data-Forwarding-Information-Request ::= SEQUENCE {
+ data-Forwarding-Request Data-Forwarding-Request,
+ uL-Data-Forwarding UP-TNL-Information OPTIONAL,
+ dL-Data-Forwarding UP-TNL-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Data-Forwarding-Information-Request-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Data-Forwarding-Information-Request-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Data-Forwarding-Information-Response ::= SEQUENCE {
+ uL-Data-Forwarding UP-TNL-Information OPTIONAL,
+ dL-Data-Forwarding UP-TNL-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Data-Forwarding-Information-Response-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Data-Forwarding-Information-Response-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Data-Forwarding-Request ::= ENUMERATED {
+ uL,
+ dL,
+ both,
+ ...
+}
+
+Data-Usage-Report-List ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF Data-Usage-Report-Item
+
+Data-Usage-Report-Item ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ rAT-Type RAT-Type,
+ dRB-Usage-Report-List DRB-Usage-Report-List,
+ iE-Extensions ProtocolExtensionContainer { { Data-Usage-Report-ItemExtIEs } } OPTIONAL,
+ ...
+}
+
+Data-Usage-Report-ItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DefaultDRB ::= ENUMERATED {
+ true,
+ false,
+ ...
+}
+
+DiscardTimer ::= ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms75, ms100, ms150, ms200, ms250, ms300, ms500, ms750, ms1500, infinity, ...}
+
+DL-TX-Stop ::= ENUMERATED {
+ stop,
+ ...
+}
+
+DRB-Acivity ::= ENUMERATED {
+ active,
+ not-active,
+ ...
+}
+
+DRB-Activity-Item ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ dRB-Activity DRB-Acivity,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Activity-ItemExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Activity-ItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Confirm-Modified-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Confirm-Modified-Item-EUTRAN
+
+DRB-Confirm-Modified-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ cell-Group-Information Cell-Group-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Confirm-Modified-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Confirm-Modified-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Confirm-Modified-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Confirm-Modified-Item-NG-RAN
+
+DRB-Confirm-Modified-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ cell-Group-Information Cell-Group-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Confirm-Modified-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Confirm-Modified-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Failed-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Failed-Item-EUTRAN
+
+DRB-Failed-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Failed-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Failed-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Failed-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Failed-Item-NG-RAN
+
+DRB-Failed-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Failed-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Failed-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Failed-To-Modify-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Failed-To-Modify-Item-EUTRAN
+
+DRB-Failed-To-Modify-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Failed-To-Modify-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Failed-To-Modify-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Failed-To-Modify-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Failed-To-Modify-Item-NG-RAN
+
+DRB-Failed-To-Modify-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Failed-To-Modify-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Failed-To-Modify-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-ID ::= INTEGER (1..32, ...)
+
+DRB-Modified-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Modified-Item-EUTRAN
+
+DRB-Modified-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ pDCP-UL-Count PDCP-Count OPTIONAL,
+ pDCP-DL-Count PDCP-Count OPTIONAL,
+ uL-UP-Transport-Parameters UP-Parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Modified-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Modified-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Modified-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Modified-Item-NG-RAN
+
+DRB-Modified-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ pDCP-UL-Count PDCP-Count OPTIONAL,
+ pDCP-DL-Count PDCP-Count OPTIONAL,
+ uL-UP-Transport-Parameters UP-Parameters OPTIONAL,
+ flow-Setup-List QoS-Flow-List OPTIONAL,
+ flow-Failed-List QoS-Flow-Failed-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Modified-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Modified-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Required-To-Modify-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Required-To-Modify-Item-EUTRAN
+
+DRB-Required-To-Modify-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ s1-DL-UP-TNL-Information UP-TNL-Information OPTIONAL,
+ data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ gNB-CU-UP-CellGroupRelatedConfiguration GNB-CU-UP-CellGroupRelatedConfiguration OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Required-To-Modify-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Required-To-Modify-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Required-To-Modify-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Required-To-Modify-Item-NG-RAN
+
+DRB-Required-To-Modify-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ gNB-CU-UP-CellGroupRelatedConfiguration GNB-CU-UP-CellGroupRelatedConfiguration OPTIONAL,
+ flow-To-Remove QoS-Flow-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Required-To-Modify-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Required-To-Modify-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DRB-Setup-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Setup-Item-EUTRAN
+
+DRB-Setup-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ s1-DL-UP-TNL-Information UP-TNL-Information,
+ data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ uL-UP-Transport-Parameters UP-Parameters,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Setup-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Setup-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Setup-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-Setup-Item-NG-RAN
+
+DRB-Setup-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ dRB-data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ uL-UP-Transport-Parameters UP-Parameters,
+ flow-Setup-List QoS-Flow-List,
+ flow-Failed-List QoS-Flow-Failed-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Setup-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Setup-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Status-Item ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ pDCP-DL-Count PDCP-Count OPTIONAL,
+ pDCP-UL-Count PDCP-Count OPTIONAL,
+ data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-Status-ItemExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-Status-ItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DRB-To-Modify-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-To-Modify-Item-EUTRAN
+
+DRB-To-Modify-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ pDCP-Configuration PDCP-Configuration OPTIONAL,
+ eUTRAN-QoS EUTRAN-QoS OPTIONAL,
+ s1-UL-UP-TNL-Information UP-TNL-Information OPTIONAL,
+ data-Forwarding-Information-Request Data-Forwarding-Information-Request OPTIONAL,
+ pDCP-Count-Request PDCP-Count-Request OPTIONAL,
+ pDCP-UL-Count PDCP-Count OPTIONAL,
+ pDCP-DL-Count PDCP-Count OPTIONAL,
+ dL-UP-Parameters UP-Parameters OPTIONAL,
+ cell-Group-To-Add Cell-Group-Information OPTIONAL,
+ cell-Group-To-Modify Cell-Group-Information OPTIONAL,
+ cell-Group-To-Remove Cell-Group-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-To-Modify-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-To-Modify-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-To-Modify-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-To-Modify-Item-NG-RAN
+
+DRB-To-Modify-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ sDAP-Configuration SDAP-Configuration OPTIONAL,
+ pDCP-Configuration PDCP-Configuration OPTIONAL,
+ dRB-Data-Forwarding-Information-Request Data-Forwarding-Information-Request OPTIONAL,
+ pDCP-Count-Request PDCP-Count-Request OPTIONAL,
+ pDCP-UL-Count PDCP-Count OPTIONAL,
+ pDCP-DL-Count PDCP-Count OPTIONAL,
+ dL-UP-Parameters UP-Parameters OPTIONAL,
+ cell-Group-To-Add Cell-Group-Information OPTIONAL,
+ cell-Group-To-Modify Cell-Group-Information OPTIONAL,
+ cell-Group-To-Remove Cell-Group-Information OPTIONAL,
+ flow-Mapping-Information QoS-Flow-QoS-Parameter-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-To-Modify-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-To-Modify-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-To-Remove-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-To-Remove-Item-EUTRAN
+
+DRB-To-Remove-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ iE-Extensions ProtocolExtensionContainer { { DRB-To-Remove-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-To-Remove-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-To-Remove-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-To-Remove-Item-NG-RAN
+
+DRB-To-Remove-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ iE-Extensions ProtocolExtensionContainer { { DRB-To-Remove-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-To-Remove-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-To-Setup-List-EUTRAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-To-Setup-Item-EUTRAN
+
+DRB-To-Setup-Item-EUTRAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ pDCP-Configuration PDCP-Configuration,
+ eUTRAN-QoS EUTRAN-QoS,
+ s1-UL-UP-TNL-Information UP-TNL-Information,
+ data-Forwarding-Information-Request Data-Forwarding-Information-Request OPTIONAL,
+ cell-Group-Information Cell-Group-Information,
+ iE-Extensions ProtocolExtensionContainer { { DRB-To-Setup-Item-EUTRAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-To-Setup-Item-EUTRAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-To-Setup-List-NG-RAN ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-To-Setup-Item-NG-RAN
+
+DRB-To-Setup-Item-NG-RAN ::= SEQUENCE {
+ dRB-ID DRB-ID,
+ sDAP-Configuration SDAP-Configuration,
+ pDCP-Configuration PDCP-Configuration,
+ cell-Group-Information Cell-Group-Information,
+ flow-Mapping-Information QoS-Flow-QoS-Parameter-List,
+ dRB-Data-Forwarding-Information-Request Data-Forwarding-Information-Request OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DRB-To-Setup-Item-NG-RAN-ExtIEs } } OPTIONAL,
+ ...
+}
+
+DRB-To-Setup-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRB-Usage-Report-List ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF DRB-Usage-Report-Item
+
+DRB-Usage-Report-Item ::= SEQUENCE {
+ startTimeStamp OCTET STRING (SIZE(4)),
+ endTimeStamp OCTET STRING (SIZE(4)),
+ usageCountUL INTEGER (0..18446744073709551615),
+ usageCountDL INTEGER (0..18446744073709551615),
+ iE-Extensions ProtocolExtensionContainer { { DRB-Usage-Report-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRB-Usage-Report-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+Dynamic5QIDescriptor ::= SEQUENCE {
+ qoSPriorityLevel INTEGER (1..127),
+ packetDelayBudget PacketDelayBudget,
+ packetErrorRate PacketErrorRate,
+ delayCritical ENUMERATED {delay-critical, non-delay-critical} OPTIONAL,
+ averagingWindow AveragingWindow OPTIONAL,
+ maxDataBurstVolume MaxDataBurstVolume OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Dynamic5QIDescriptor-ExtIEs } } OPTIONAL
+}
+
+Dynamic5QIDescriptor-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- E
+
+EncryptionKey ::= OCTET STRING
+
+EUTRANAllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {EUTRANAllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRANAllocationAndRetentionPriority-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EUTRAN-QoS-Support-List ::= SEQUENCE (SIZE(1.. maxnoofEUTRANQOSParameters)) OF EUTRAN-QoS-Support-Item
+
+EUTRAN-QoS-Support-Item ::= SEQUENCE {
+ eUTRAN-QoS EUTRAN-QoS,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-QoS-Support-Item-ExtIEs } } OPTIONAL
+}
+
+EUTRAN-QoS-Support-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRAN-QoS ::= SEQUENCE {
+ qCI QCI,
+ eUTRANallocationAndRetentionPriority EUTRANAllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-QoS-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-QoS-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- F
+
+-- G
+
+GNB-CU-CP-Name ::= PrintableString(SIZE(1..150,...))
+
+GNB-CU-CP-UE-E1AP-ID ::= INTEGER (0..4294967295)
+
+GNB-CU-UP-CellGroupRelatedConfiguration ::= SEQUENCE (SIZE(1.. maxnoofUPParameters)) OF GNB-CU-UP-CellGroupRelatedConfiguration-Item
+
+GNB-CU-UP-CellGroupRelatedConfiguration-Item ::= SEQUENCE {
+ cell-Group-ID Cell-Gorup-ID,
+ uP-TNL-Information UP-TNL-Information,
+ uL-Configuration UL-Configuration OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {GNB-CU-UP-CellGroupRelatedConfiguration-Item-ExtIEs } } OPTIONAL
+}
+
+GNB-CU-UP-CellGroupRelatedConfiguration-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-CU-UP-ID ::= INTEGER (0..68719476735)
+
+GNB-CU-UP-Name ::= PrintableString(SIZE(1..150,...))
+
+GNB-CU-UP-UE-E1AP-ID ::= INTEGER (0..4294967295)
+
+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 E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GBR-QoSFlowInformation::= SEQUENCE {
+ maxFlowBitRateDownlink BitRate,
+ maxFlowBitRateUplink BitRate,
+ guaranteedFlowBitRateDownlink BitRate,
+ guaranteedFlowBitRateUplink BitRate,
+ notificationControl ENUMERATED {notification-enabled, ...} OPTIONAL,
+ maxPacketLossRateDownlink MaxPacketLossRate OPTIONAL,
+ maxPacketLossRateUplink MaxPacketLossRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosFlowInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosFlowInformation-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GTPTunnel ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { GTPTunnel-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GTPTunnel-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- H
+
+HFN ::= INTEGER (0..4294967295)
+
+-- I
+
+IntegrityProtectionIndication ::= ENUMERATED {
+ required,
+ preferred,
+ not-needed,
+ ...
+}
+
+IntegrityProtectionAlgorithm ::= ENUMERATED {
+ nIA0,
+ i-128-NIA1,
+ i-128-NIA2,
+ i-128-NIA3,
+ ...
+}
+
+IntegrityProtectionKey ::= OCTET STRING
+
+-- J
+
+-- K
+
+-- L
+
+-- M
+
+MaxDataBurstVolume ::= INTEGER (0..63) -- this IE may need to be refined
+
+MaxPacketLossRate ::= INTEGER (0..1000)
+
+-- N
+
+NGRANAllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {NGRANAllocationAndRetentionPriority-ExtIEs} } OPTIONAL
+}
+
+NGRANAllocationAndRetentionPriority-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-QoS-Support-List ::= SEQUENCE (SIZE(1.. maxnoofNGRANQOSParameters)) OF NG-RAN-QoS-Support-Item
+
+NG-RAN-QoS-Support-Item ::= SEQUENCE {
+ non-Dynamic5QIDescriptor Non-Dynamic5QIDescriptor,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-QoS-Support-Item-ExtIEs } } OPTIONAL
+}
+
+NG-RAN-QoS-Support-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Non-Dynamic5QIDescriptor ::= SEQUENCE {
+ fiveQI INTEGER (0..255, ...),
+ qoSPriorityLevel INTEGER (1..127, ...) OPTIONAL,
+ averagingWindow AveragingWindow OPTIONAL,
+ maxDataBurstVolume MaxDataBurstVolume OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Non-Dynamic5QIDescriptor-ExtIEs } } OPTIONAL
+}
+
+Non-Dynamic5QIDescriptor-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NR-Cell-Identity ::= BIT STRING (SIZE(36))
+
+NR-CGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ nR-Cell-Identity NR-Cell-Identity,
+ iE-Extensions ProtocolExtensionContainer { { NR-CGI-ExtIEs } } OPTIONAL
+}
+
+NR-CGI-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NR-CGI-Support-List ::= SEQUENCE (SIZE(1.. maxnoofNRCGI)) OF NR-CGI-Support-Item
+
+NR-CGI-Support-Item ::= SEQUENCE {
+ nR-CGI NR-CGI,
+ iE-Extensions ProtocolExtensionContainer { { NR-CGI-Support-Item-ExtIEs } } OPTIONAL
+}
+
+NR-CGI-Support-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- O
+
+-- P
+
+PacketDelayBudget ::= INTEGER (0..63) -- this IE may need to be refined
+
+PacketErrorRate ::= INTEGER (0..63) -- this IE may need to be refined
+
+PDCP-Configuration ::= SEQUENCE {
+ pDCP-SN-Size PDCP-SN-Size,
+ rLC-Mode RLC-Mode,
+ rOHC-Parameters ROHC-Parameters OPTIONAL,
+ t-ReorderingTimer T-ReorderingTimer OPTIONAL,
+ discardTimer DiscardTimer OPTIONAL,
+ uLDataSplitThreshold ULDataSplitThreshold OPTIONAL,
+ pDCP-Duplication PDCP-Duplication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDCP-Configuration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDCP-Configuration-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDCP-Count ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { { PDCP-Count-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDCP-Count-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDCP-Count-Request ::= ENUMERATED {
+ requested,
+ ...
+}
+
+PDCP-Duplication ::= ENUMERATED {
+ true,
+ ...
+}
+
+PDCP-SN ::= INTEGER (0..262143)
+
+PDCP-SN-Size ::= ENUMERATED {
+ s-12,
+ s-18,
+ ...
+}
+
+PDU-Session-ID ::= INTEGER (0..255)
+
+PDU-Session-Resource-Confirm-Modified-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-Confirm-Modified-Item
+
+PDU-Session-Resource-Confirm-Modified-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ dRB-Confirm-Modified-List-NG-RAN DRB-Confirm-Modified-List-NG-RAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-Confirm-Modified-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-Confirm-Modified-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-Failed-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-Failed-Item
+
+PDU-Session-Resource-Failed-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ casue Cause,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-Failed-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-Failed-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-Failed-To-Modify-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-Failed-To-Modify-Item
+
+PDU-Session-Resource-Failed-To-Modify-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ casue Cause,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-Failed-To-Modify-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-Failed-To-Modify-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-Modified-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-Modified-Item
+
+PDU-Session-Resource-Modified-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ dRB-Setup-List-NG-RAN DRB-Setup-List-NG-RAN OPTIONAL,
+ dRB-Failed-List-NG-RAN DRB-Failed-List-NG-RAN OPTIONAL,
+ dRB-Modified-List-NG-RAN DRB-Modified-List-NG-RAN OPTIONAL,
+ dRB-Failed-To-Modify-List-NG-RAN DRB-Failed-To-Modify-List-NG-RAN OPTIONAL,
+ dRB-To-Remove-List-NG-RAN DRB-To-Remove-List-NG-RAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-Modified-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-Modified-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-Required-To-Modify-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-Required-To-Modify-Item
+
+PDU-Session-Resource-Required-To-Modify-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ nG-DL-UP-TNL-Information UP-TNL-Information OPTIONAL,
+ pDU-Session-Data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ dRB-Required-To-Modify-List-NG-RAN DRB-Required-To-Modify-List-NG-RAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-Required-To-Modify-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-Required-To-Modify-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-Setup-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-Setup-Item
+
+PDU-Session-Resource-Setup-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ nG-DL-UP-TNL-Information UP-TNL-Information OPTIONAL,
+ pDU-Session-Data-Forwarding-Information-Response Data-Forwarding-Information-Response OPTIONAL,
+ dRB-Setup-List-NG-RAN DRB-Setup-List-NG-RAN,
+ dRB-Failed-List-NG-RAN DRB-Failed-List-NG-RAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-Setup-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-Setup-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-To-Modify-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-To-Modify-Item
+
+PDU-Session-Resource-To-Modify-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ pDU-Session-Type PDU-Session-Type OPTIONAL,
+ sNSSAI SNSSAI OPTIONAL,
+ securityIndication SecurityIndication OPTIONAL,
+ pDU-Session-Resource-AMBR BitRate OPTIONAL,
+ nG-UL-UP-TNL-Information UP-TNL-Information OPTIONAL,
+ pDU-Session-Data-Forwarding-Information-Request Data-Forwarding-Information-Request OPTIONAL,
+ dRB-To-Setup-List-NG-RAN DRB-To-Setup-List-NG-RAN OPTIONAL,
+ dRB-To-Modify-List-NG-RAN DRB-To-Modify-List-NG-RAN OPTIONAL,
+ dRB-To-Remove-List-NG-RAN DRB-To-Remove-List-NG-RAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-To-Modify-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-To-Modify-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-To-Remove-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-To-Remove-Item
+
+PDU-Session-Resource-To-Remove-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-To-Remove-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-To-Remove-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Resource-To-Setup-List ::= SEQUENCE (SIZE(1.. maxnoofPDUSessionResource)) OF PDU-Session-Resource-To-Setup-Item
+
+PDU-Session-Resource-To-Setup-Item ::= SEQUENCE {
+ pDU-Session-ID PDU-Session-ID,
+ pDU-Session-Type PDU-Session-Type,
+ sNSSAI SNSSAI,
+ securityIndication SecurityIndication,
+ pDU-Session-Resource-AMBR BitRate OPTIONAL,
+ nG-UL-UP-TNL-Information UP-TNL-Information,
+ pDU-Session-Data-Forwarding-Information-Request Data-Forwarding-Information-Request OPTIONAL,
+ dRB-To-Setup-List-NG-RAN DRB-To-Setup-List-NG-RAN,
+ iE-Extensions ProtocolExtensionContainer { { PDU-Session-Resource-To-Setup-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDU-Session-Resource-To-Setup-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDU-Session-Type ::= ENUMERATED {
+ ipv4,
+ ipv6,
+ ipv4v6,
+ ethernet,
+ unstructured,
+ ...
+}
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+QoS-Characteristics ::= CHOICE {
+ non-Dynamic-5QI Non-Dynamic5QIDescriptor,
+ dynamic-5QI Dynamic5QIDescriptor,
+ ...
+}
+
+QoS-Flow-Indicator ::= INTEGER (0..63)
+
+QoS-Flow-List ::= SEQUENCE (SIZE(1.. maxnoofQoSFlows)) OF QoS-Flow-Item
+
+QoS-Flow-Item ::= SEQUENCE {
+ qoS-Flow-Indicator QoS-Flow-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { QoS-Flow-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+QoS-Flow-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+QoS-Flow-Failed-List ::= SEQUENCE (SIZE(1.. maxnoofQoSFlows)) OF QoS-Flow-Failed-Item
+
+QoS-Flow-Failed-Item ::= SEQUENCE {
+ qoS-Flow-Indicator QoS-Flow-Indicator,
+ casue Cause,
+ iE-Extensions ProtocolExtensionContainer { { QoS-Flow-Failed-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+QoS-Flow-Failed-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+QoS-Parameters-Support-List ::= SEQUENCE {
+ eUTRAN-QoS-Support-List EUTRAN-QoS-Support-List OPTIONAL,
+ nG-RAN-QoS-Support-List NG-RAN-QoS-Support-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { QoS-Parameters-Support-List-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+QoS-Parameters-Support-List-ItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+QoS-Flow-QoS-Parameter-List ::= SEQUENCE (SIZE(1.. maxnoofQoSFlows)) OF QoS-Flow-QoS-Parameter-Item
+
+QoS-Flow-QoS-Parameter-Item ::= SEQUENCE {
+ qoS-Flow-Indicator QoS-Flow-Indicator,
+ qoSFlowLevelQoSParameters QoSFlowLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { { QoS-Flow-QoS-Parameter-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+QoS-Flow-QoS-Parameter-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+QoSFlowLevelQoSParameters ::= SEQUENCE {
+ qoS-Characteristics QoS-Characteristics,
+ nGRANallocationRetentionPriority NGRANAllocationAndRetentionPriority,
+ gBR-QoS-Flow-Information GBR-QoSFlowInformation OPTIONAL,
+ reflective-QoS-Attribute ENUMERATED {subject-to, ...} OPTIONAL,
+ additional-QoS-Information ENUMERATED {more-likely, ...} OPTIONAL,
+ paging-Policy-Indicator INTEGER (1..8, ...) OPTIONAL,
+ reflective-QoS-Indicator ENUMERATED {enabled, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { QoSFlowLevelQoSParameters-ExtIEs } } OPTIONAL
+}
+
+QoSFlowLevelQoSParameters-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- R
+
+RAT-Type ::= ENUMERATED {
+ e-UTRA,
+ nR,
+ ...
+}
+
+RLC-Mode ::= ENUMERATED {
+ tM,
+ uM,
+ aM,
+ ...
+}
+
+ROHC-Parameters ::= SEQUENCE {
+ rOHC-Profiles ROHC-Profiles,
+ iE-Extensions ProtocolExtensionContainer { { ROHC-Parameters-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+ROHC-Parameters-ItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ROHC-Profiles ::= INTEGER (0..511, ...)
+
+-- S
+
+SecurityAlgorithm ::= SEQUENCE {
+ cipheringAlgorithm CipheringAlgorithm,
+ integrityProtectionAlgorithm IntegrityProtectionAlgorithm OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SecurityAlgorithm-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SecurityAlgorithm-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecurityIndication ::= SEQUENCE {
+ integrityProtectionIndication IntegrityProtectionIndication,
+ confidentialityProtectionIndication ConfidentialityProtectionIndication,
+ iE-Extensions ProtocolExtensionContainer { {SecurityIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecurityIndication-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecurityInformation ::= SEQUENCE {
+ securityAlgorithm SecurityAlgorithm,
+ uPSecuritykey UPSecuritykey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SecurityInformation-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Slice-Support-List ::= SEQUENCE (SIZE(1.. maxnoofSliceItems)) OF Slice-Support-Item
+
+Slice-Support-Item ::= SEQUENCE {
+ sNSSAI SNSSAI,
+ iE-Extensions ProtocolExtensionContainer { { Slice-Support-Item-ExtIEs } } OPTIONAL
+}
+
+Slice-Support-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNSSAI ::= SEQUENCE {
+ sST OCTET STRING (SIZE(1)),
+ sD OCTET STRING (SIZE(3)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SNSSAI-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SNSSAI-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDAP-Configuration ::= SEQUENCE {
+ defaultDRB DefaultDRB,
+ sDAP-Header-UL SDAP-Header-UL,
+ sDAP-Header-DL SDAP-Header-DL,
+ iE-Extensions ProtocolExtensionContainer { { SDAP-Configuration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SDAP-Configuration-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SDAP-Header-DL ::= ENUMERATED {
+ present,
+ absent,
+ ...
+}
+
+SDAP-Header-UL ::= ENUMERATED {
+ present,
+ absent,
+ ...
+}
+
+-- T
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+T-ReorderingDL ::= ENUMERATED {ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms110, ms120, ms130, ms140, ms150, ms160, ms170, ms180, ms190, ms200, ms220, ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1500, ms3000, ...}
+
+T-ReorderingTimer ::= SEQUENCE {
+ t-ReorderingUL T-ReorderingUL,
+ t-ReorderingDL T-ReorderingDL,
+ iE-Extensions ProtocolExtensionContainer { { T-ReorderingTimer-ExtIEs } } OPTIONAL,
+ ...
+}
+
+T-ReorderingTimer-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+T-ReorderingUL ::= ENUMERATED {ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms110, ms120, ms130, ms140, ms150, ms160, ms170, ms180, ms190, ms200, ms220, ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1500, ms3000, ...}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UE-associatedLogicalE1-ConnectionItem ::= SEQUENCE {
+ gNB-CU-CP-UE-E1AP-ID GNB-CU-CP-UE-E1AP-ID OPTIONAL,
+ gNB-CU-UP-UE-E1AP-ID GNB-CU-UP-UE-E1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalE1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-associatedLogicalE1-ConnectionItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-Configuration ::= ENUMERATED {
+ no-data,
+ shared,
+ only,
+ ...
+}
+
+ULDataSplitThreshold ::= ENUMERATED {b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800, b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400, b6553600, infinity, ...}
+
+UP-Parameters ::= SEQUENCE (SIZE(1.. maxnoofUPParameters)) OF UP-Parameters-Item
+
+UP-Parameters-Item ::= SEQUENCE {
+ uP-TNL-Information UP-TNL-Information,
+ cell-Group-ID Cell-Gorup-ID,
+ iE-Extensions ProtocolExtensionContainer { { UP-Parameters-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UP-Parameters-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UPSecuritykey ::= SEQUENCE {
+ encryptionKey EncryptionKey,
+ integrityProtectionKey IntegrityProtectionKey OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UPSecuritykey-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UPSecuritykey-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UP-TNL-Information ::= CHOICE {
+ gTPTunnel GTPTunnel,
+ ...
+}
+
+-- V
+
+-- W
+
+-- X
+
+-- Y
+
+-- Z
+
+END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..615c86888d
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
@@ -0,0 +1,1008 @@
+-- 3GPP TS 38.463 V15.0.0 (2018-06)
+-- **************************************************************
+--
+-- PDU definitions for E1AP
+--
+-- **************************************************************
+
+E1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) e1ap (5) version1 (1) e1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules
+--
+-- **************************************************************
+
+IMPORTS
+
+ Cause,
+ CriticalityDiagnostics,
+ GNB-CU-CP-UE-E1AP-ID,
+ GNB-CU-UP-UE-E1AP-ID,
+ UE-associatedLogicalE1-ConnectionItem,
+ GNB-CU-UP-ID,
+ GNB-CU-UP-Name,
+ GNB-CU-CP-Name,
+ CNSupport,
+ PLMN-Identity,
+ Slice-Support-List,
+ NR-CGI-Support-List,
+ QoS-Parameters-Support-List,
+ SecurityInformation,
+ BitRate,
+ BearerContextStatusChange,
+ DRB-To-Setup-List-EUTRAN,
+ DRB-Setup-List-EUTRAN,
+ DRB-Failed-List-EUTRAN,
+ DRB-To-Modify-List-EUTRAN,
+ DRB-Modified-List-EUTRAN,
+ DRB-Failed-To-Modify-List-EUTRAN,
+ DRB-To-Remove-List-EUTRAN,
+ DRB-Required-To-Modify-List-EUTRAN,
+ DRB-Confirm-Modified-List-EUTRAN,
+ PDU-Session-Resource-To-Setup-List,
+ PDU-Session-Resource-Setup-List,
+ PDU-Session-Resource-Failed-List,
+ PDU-Session-Resource-To-Modify-List,
+ PDU-Session-Resource-Modified-List,
+ PDU-Session-Resource-Failed-To-Modify-List,
+ PDU-Session-Resource-To-Remove-List,
+ PDU-Session-Resource-Required-To-Modify-List,
+ PDU-Session-Resource-Confirm-Modified-List,
+ DRB-Status-Item,
+ DRB-Activity-Item,
+ Data-Usage-Report-List,
+ TimeToWait
+
+
+FROM E1AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-SingleContainer{},
+ E1AP-PRIVATE-IES,
+ E1AP-PROTOCOL-EXTENSION,
+ E1AP-PROTOCOL-IES
+
+
+FROM E1AP-Containers
+
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-gNB-CU-CP-UE-E1AP-ID,
+ id-gNB-CU-UP-UE-E1AP-ID,
+ id-ResetType,
+ id-UE-associatedLogicalE1-ConnectionItem,
+ id-UE-associatedLogicalE1-ConnectionListResAck,
+ id-gNB-CU-UP-ID,
+ id-gNB-CU-UP-Name,
+ id-gNB-CU-CP-Name,
+ id-CNSupport,
+ id-SupportedPLMNs,
+ id-SupportedPLMNs-Item,
+ id-SecurityInformation,
+ id-UEDLAggregateMaximumBitRate,
+ id-BearerContextStatusChange,
+ id-System-BearerContextSetupRequest,
+ id-System-BearerContextSetupResponse,
+ id-System-BearerContextModificationRequest,
+ id-System-BearerContextModificationResponse,
+ id-System-BearerContextModificationConfirm,
+ id-System-BearerContextModificationRequired,
+ id-DRB-Status-List,
+ id-DRB-Status-Item,
+ id-DRB-Activity-List,
+ id-DRB-Activity-Item,
+ id-Data-Usage-Report-List,
+ id-TimeToWait,
+
+ maxnoofErrors,
+ maxnoofSPLMNs,
+ maxnoofDRBs,
+ maxnoofIndividualE1ConnectionsToReset
+
+
+FROM E1AP-Constants;
+
+-- **************************************************************
+--
+-- RESET
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ e1-Interface ResetAll,
+ partOfE1-Interface UE-associatedLogicalE1-ConnectionListRes,
+ ...
+}
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalE1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualE1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalE1-ConnectionItemRes } }
+
+UE-associatedLogicalE1-ConnectionItemRes E1AP-PROTOCOL-IES ::= {
+
+ { ID id-UE-associatedLogicalE1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalE1-ConnectionItem PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalE1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalE1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalE1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualE1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalE1-ConnectionItemResAck } }
+
+UE-associatedLogicalE1-ConnectionItemResAck E1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalE1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalE1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ ...
+}
+
+ErrorIndication-IEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY ignore TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE optional}|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY ignore TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-UP E1 SETUP
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- GNB-CU-UP E1 Setup Request
+--
+-- **************************************************************
+
+GNB-CU-UP-E1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-UP-E1SetupRequestIEs} },
+ ...
+}
+
+GNB-CU-UP-E1SetupRequestIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-UP-ID CRITICALITY reject TYPE GNB-CU-UP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-Name CRITICALITY ignore TYPE GNB-CU-UP-Name PRESENCE optional }|
+ { ID id-CNSupport CRITICALITY reject TYPE CNSupport PRESENCE mandatory }|
+ { ID id-SupportedPLMNs CRITICALITY reject TYPE SupportedPLMNs-List PRESENCE mandatory },
+ ...
+}
+
+SupportedPLMNs-List ::= SEQUENCE (SIZE (1..maxnoofSPLMNs)) OF ProtocolIE-SingleContainer { {SupportedPLMNs-ItemIEs} }
+
+SupportedPLMNs-ItemIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-SupportedPLMNs-Item CRITICALITY reject TYPE SupportedPLMNs-Item PRESENCE mandatory }
+}
+
+SupportedPLMNs-Item ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ slice-Support-List Slice-Support-List OPTIONAL,
+ nR-CGI-Support-List NR-CGI-Support-List OPTIONAL,
+ qoS-Parameters-Support-List QoS-Parameters-Support-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SupportedPLMNs-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SupportedPLMNs-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-UP E1 Setup Response
+--
+-- **************************************************************
+
+GNB-CU-UP-E1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-UP-E1SetupResponseIEs} },
+ ...
+}
+
+GNB-CU-UP-E1SetupResponseIEs
+ E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-Name CRITICALITY ignore TYPE GNB-CU-CP-Name PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-UP E1 Setup Failure
+--
+-- **************************************************************
+
+GNB-CU-UP-E1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-UP-E1SetupFailureIEs} },
+ ...
+}
+
+GNB-CU-UP-E1SetupFailureIEs E1AP-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-CP E1 SETUP
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- GNB-CU-CP E1 Setup Request
+--
+-- **************************************************************
+
+GNB-CU-CP-E1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-CP-E1SetupRequestIEs} },
+ ...
+}
+
+GNB-CU-CP-E1SetupRequestIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-Name CRITICALITY ignore TYPE GNB-CU-CP-Name PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-CP E1 Setup Response
+--
+-- **************************************************************
+
+GNB-CU-CP-E1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-CP-E1SetupResponseIEs} },
+ ...
+}
+
+GNB-CU-CP-E1SetupResponseIEs
+ E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-UP-ID CRITICALITY reject TYPE GNB-CU-UP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-Name CRITICALITY ignore TYPE GNB-CU-UP-Name PRESENCE optional }|
+ { ID id-CNSupport CRITICALITY reject TYPE CNSupport PRESENCE mandatory }|
+ { ID id-SupportedPLMNs CRITICALITY reject TYPE SupportedPLMNs-List PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-CP E1 Setup Failure
+--
+-- **************************************************************
+
+GNB-CU-CP-E1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-CP-E1SetupFailureIEs} },
+ ...
+}
+
+GNB-CU-CP-E1SetupFailureIEs E1AP-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-UP CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- GNB-CU-UP Configuration Update
+--
+-- **************************************************************
+
+GNB-CU-UP-ConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-UP-ConfigurationUpdateIEs} },
+ ...
+}
+
+GNB-CU-UP-ConfigurationUpdateIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-UP-ID CRITICALITY reject TYPE GNB-CU-UP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-Name CRITICALITY ignore TYPE GNB-CU-UP-Name PRESENCE optional }|
+ { ID id-SupportedPLMNs CRITICALITY reject TYPE SupportedPLMNs-List PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-UP Configuration Update Acknowledge
+--
+-- **************************************************************
+
+GNB-CU-UP-ConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-UP-ConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+GNB-CU-UP-ConfigurationUpdateAcknowledgeIEs
+ E1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-UP Configuration Update Failure
+--
+-- **************************************************************
+
+GNB-CU-UP-ConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-UP-ConfigurationUpdateFailureIEs} },
+ ...
+}
+
+GNB-CU-UP-ConfigurationUpdateFailureIEs E1AP-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-CP CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- GNB-CU-CP Configuration Update
+--
+-- **************************************************************
+
+GNB-CU-CP-ConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-CP-ConfigurationUpdateIEs} },
+ ...
+}
+
+GNB-CU-CP-ConfigurationUpdateIEs E1AP-PROTOCOL-IES ::= {
+-- WS modification: fix a typo
+-- { ID id-gNB-CU-CP-Name CRITICALITY ignore TYPE GNB-CU-UP-Name PRESENCE optional },
+ { ID id-gNB-CU-CP-Name CRITICALITY ignore TYPE GNB-CU-CP-Name PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-CP Configuration Update Acknowledge
+--
+-- **************************************************************
+
+GNB-CU-CP-ConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-CP-ConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+GNB-CU-CP-ConfigurationUpdateAcknowledgeIEs
+ E1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- GNB-CU-CP Configuration Update Failure
+--
+-- **************************************************************
+
+GNB-CU-CP-ConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {GNB-CU-CP-ConfigurationUpdateFailureIEs} },
+ ...
+}
+
+GNB-CU-CP-ConfigurationUpdateFailureIEs E1AP-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 },
+ ...
+}
+
+-- **************************************************************
+--
+-- E1 RELEASE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E1 Release Request
+--
+-- **************************************************************
+
+E1ReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E1ReleaseRequestIEs} },
+ ...
+}
+
+E1ReleaseRequestIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- E1 Release Response
+--
+-- **************************************************************
+
+E1ReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E1ReleaseResponseIEs} },
+ ...
+}
+
+E1ReleaseResponseIEs E1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER CONTEXT SETUP
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Bearer Context Setup Request
+--
+-- **************************************************************
+
+BearerContextSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextSetupRequestIEs} },
+ ...
+}
+
+BearerContextSetupRequestIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-SecurityInformation CRITICALITY reject TYPE SecurityInformation PRESENCE mandatory }|
+ { ID id-UEDLAggregateMaximumBitRate CRITICALITY reject TYPE BitRate PRESENCE mandatory }|
+ { ID id-System-BearerContextSetupRequest CRITICALITY reject TYPE System-BearerContextSetupRequest PRESENCE mandatory },
+ ...
+}
+
+System-BearerContextSetupRequest ::= CHOICE {
+ e-UTRAN-BearerContextSetupRequest EUTRAN-BearerContextSetupRequest,
+ nG-RAN-BearerContextSetupRequest NG-RAN-BearerContextSetupRequest,
+ ...
+}
+
+EUTRAN-BearerContextSetupRequest ::= SEQUENCE {
+
+ dRB-To-Setup-List-EUTRAN DRB-To-Setup-List-EUTRAN,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-BearerContextSetupRequest-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-BearerContextSetupRequest-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-BearerContextSetupRequest ::= SEQUENCE {
+ pDU-Session-Resource-To-Setup-List PDU-Session-Resource-To-Setup-List,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-BearerContextSetupRequest-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NG-RAN-BearerContextSetupRequest-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Bearer Context Setup Response
+--
+-- **************************************************************
+
+BearerContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextSetupResponseIEs} },
+ ...
+}
+
+
+BearerContextSetupResponseIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+-- WS modification: fix wrong IE type
+-- { ID id-System-BearerContextSetupResponse CRITICALITY ignore TYPE System-BearerContextSetupRequest PRESENCE mandatory },
+ { ID id-System-BearerContextSetupResponse CRITICALITY ignore TYPE System-BearerContextSetupResponse PRESENCE mandatory },
+ ...
+}
+
+System-BearerContextSetupResponse::= CHOICE {
+ e-UTRAN-BearerContextSetupResponse EUTRAN-BearerContextSetupResponse,
+ nG-RAN-BearerContextSetupResponse NG-RAN-BearerContextSetupResponse,
+ ...
+}
+
+EUTRAN-BearerContextSetupResponse ::= SEQUENCE {
+ dRB-Setup-List-EUTRAN DRB-Setup-List-EUTRAN,
+ dRB-Failed-List-EUTRAN DRB-Failed-List-EUTRAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-BearerContextSetupResponse-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-BearerContextSetupResponse-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-BearerContextSetupResponse ::= SEQUENCE {
+ pDU-Session-Resource-Setup-List PDU-Session-Resource-Setup-List,
+ pDU-Session-Resource-Failed-List PDU-Session-Resource-Failed-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-BearerContextSetupResponse-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NG-RAN-BearerContextSetupResponse-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Bearer Context Setup Failure
+--
+-- **************************************************************
+
+BearerContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextSetupFailureIEs} },
+ ...
+}
+
+BearerContextSetupFailureIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY ignore TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER CONTEXT MODIFICATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Bearer Context Modification Request
+--
+-- **************************************************************
+
+BearerContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextModificationRequestIEs} },
+ ...
+}
+
+BearerContextModificationRequestIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-SecurityInformation CRITICALITY reject TYPE SecurityInformation PRESENCE optional }|
+ { ID id-UEDLAggregateMaximumBitRate CRITICALITY reject TYPE BitRate PRESENCE optional }|
+ { ID id-BearerContextStatusChange CRITICALITY reject TYPE BearerContextStatusChange PRESENCE optional }|
+ { ID id-System-BearerContextModificationRequest CRITICALITY reject TYPE System-BearerContextModificationRequest PRESENCE optional },
+ ...
+}
+
+System-BearerContextModificationRequest ::= CHOICE {
+ e-UTRAN-BearerContextModificationRequest EUTRAN-BearerContextModificationRequest,
+ nG-RAN-BearerContextModificationRequest NG-RAN-BearerContextModificationRequest,
+ ...
+}
+
+EUTRAN-BearerContextModificationRequest ::= SEQUENCE {
+ dRB-To-Setup-List-EUTRAN DRB-To-Setup-List-EUTRAN OPTIONAL,
+ dRB-To-Modify-List-EUTRAN DRB-To-Modify-List-EUTRAN OPTIONAL,
+ dRB-To-Remove-List-EUTRAN DRB-To-Remove-List-EUTRAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-BearerContextModificationRequest-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-BearerContextModificationRequest-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-BearerContextModificationRequest ::= SEQUENCE {
+ pDU-Session-Resource-To-Setup-List PDU-Session-Resource-To-Setup-List OPTIONAL,
+ pDU-Session-Resource-To-Modify-List PDU-Session-Resource-To-Modify-List OPTIONAL,
+ pDU-Session-Resource-To-Remove-List PDU-Session-Resource-To-Remove-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-BearerContextModificationRequest-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NG-RAN-BearerContextModificationRequest-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Bearer Context Modification Response
+--
+-- **************************************************************
+
+BearerContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextModificationResponseIEs} },
+ ...
+}
+
+
+BearerContextModificationResponseIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-System-BearerContextModificationResponse CRITICALITY ignore TYPE System-BearerContextModificationResponse PRESENCE optional },
+ ...
+}
+
+System-BearerContextModificationResponse ::= CHOICE {
+ e-UTRAN-BearerContextModificationResponse EUTRAN-BearerContextModificationResponse,
+ nG-RAN-BearerContextModificationResponse NG-RAN-BearerContextModificationResponse,
+ ...
+}
+
+EUTRAN-BearerContextModificationResponse ::= SEQUENCE {
+ dRB-Setup-List-EUTRAN DRB-Setup-List-EUTRAN OPTIONAL,
+ dRB-Failed-List-EUTRAN DRB-Failed-List-EUTRAN OPTIONAL,
+ dRB-Modified-List-EUTRAN DRB-Modified-List-EUTRAN OPTIONAL,
+ dRB-Failed-To-Modify-List-EUTRAN DRB-Failed-To-Modify-List-EUTRAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-BearerContextModificationResponse-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-BearerContextModificationResponse-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-BearerContextModificationResponse ::= SEQUENCE {
+ pDU-Session-Resource-Setup-List PDU-Session-Resource-Setup-List OPTIONAL,
+ pDU-Session-Resource-Failed-List PDU-Session-Resource-Failed-List OPTIONAL,
+ pDU-Session-Resource-Modified-List PDU-Session-Resource-Modified-List OPTIONAL,
+ pDU-Session-Resource-Failed-To-Modify-List PDU-Session-Resource-Failed-To-Modify-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-BearerContextModificationResponse-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NG-RAN-BearerContextModificationResponse-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Bearer Context Modification Failure
+--
+-- **************************************************************
+
+BearerContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextModificationFailureIEs} },
+ ...
+}
+
+BearerContextModificationFailureIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER CONTEXT MODIFICATION REQUIRED
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Bearer Context Modification Required
+--
+-- **************************************************************
+
+BearerContextModificationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextModificationRequiredIEs} },
+ ...
+}
+
+BearerContextModificationRequiredIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-System-BearerContextModificationRequired CRITICALITY reject TYPE System-BearerContextModificationRequired PRESENCE mandatory },
+ ...
+}
+
+System-BearerContextModificationRequired ::= CHOICE {
+ e-UTRAN-BearerContextModificationRequired EUTRAN-BearerContextModificationRequired,
+ nG-RAN-BearerContextModificationRequired NG-RAN-BearerContextModificationRequired,
+ ...
+}
+
+EUTRAN-BearerContextModificationRequired ::= SEQUENCE {
+ dRB-Required-To-Modify-List-EUTRAN DRB-Required-To-Modify-List-EUTRAN OPTIONAL,
+ dRB-To-Remove-List-EUTRAN DRB-To-Remove-List-EUTRAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-BearerContextModificationRequired-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-BearerContextModificationRequired-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-BearerContextModificationRequired ::= SEQUENCE {
+ pDU-Session-Resource-Required-To-Modify-List PDU-Session-Resource-Required-To-Modify-List OPTIONAL,
+ pDU-Session-Resource-To-Remove-List PDU-Session-Resource-To-Remove-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-BearerContextModificationRequired-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NG-RAN-BearerContextModificationRequired-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Bearer Context Modification Confirm
+--
+-- **************************************************************
+
+BearerContextModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextModificationConfirmIEs} },
+ ...
+}
+
+
+BearerContextModificationConfirmIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-System-BearerContextModificationConfirm CRITICALITY ignore TYPE System-BearerContextModificationConfirm PRESENCE optional },
+ ...
+}
+
+System-BearerContextModificationConfirm ::= CHOICE {
+ e-UTRAN-BearerContextModificationConfirm EUTRAN-BearerContextModificationConfirm,
+ nG-RAN-BearerContextModificationConfirm NG-RAN-BearerContextModificationConfirm,
+ ...
+}
+
+EUTRAN-BearerContextModificationConfirm ::= SEQUENCE {
+ dRB-Confirm-Modified-List-EUTRAN DRB-Confirm-Modified-List-EUTRAN OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EUTRAN-BearerContextModificationConfirm-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EUTRAN-BearerContextModificationConfirm-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NG-RAN-BearerContextModificationConfirm ::= SEQUENCE {
+ pDU-Session-Resource-Confirm-Modified-List PDU-Session-Resource-Confirm-Modified-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NG-RAN-BearerContextModificationConfirm-ExtIEs } } OPTIONAL,
+ ...
+}
+
+NG-RAN-BearerContextModificationConfirm-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER CONTEXT RELEASE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Bearer Context Release Command
+--
+-- **************************************************************
+
+BearerContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextReleaseCommandIEs} },
+ ...
+}
+
+BearerContextReleaseCommandIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Bearer Context Release Complete
+--
+-- **************************************************************
+
+BearerContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextReleaseCompleteIEs} },
+ ...
+}
+
+
+BearerContextReleaseCompleteIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER CONTEXT RELEASE REQUEST
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Bearer Context Release Request
+--
+-- **************************************************************
+
+BearerContextReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextReleaseRequestIEs} },
+ ...
+}
+
+BearerContextReleaseRequestIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-DRB-Status-List CRITICALITY ignore TYPE DRB-Status-List PRESENCE optional },
+ ...
+}
+
+DRB-Status-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRB-Status-ItemIEs} }
+
+DRB-Status-ItemIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-DRB-Status-Item CRITICALITY ignore TYPE DRB-Status-Item PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- BEARER CONTEXT INACTIVITY NOTIFICATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Bearer Context Inactivity Notification
+--
+-- **************************************************************
+
+BearerContextInactivityNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { BearerContextInactivityNotificationIEs } },
+ ...
+}
+
+BearerContextInactivityNotificationIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-DRB-Activity-List CRITICALITY reject TYPE DRB-Activity-List PRESENCE mandatory },
+ ...
+}
+
+DRB-Activity-List ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-SingleContainer { { DRB-Activity-ItemIEs} }
+
+DRB-Activity-ItemIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-DRB-Activity-Item CRITICALITY reject TYPE DRB-Activity-Item PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- DL DATA NOTIFICATION
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DL Data Notification
+--
+-- **************************************************************
+
+DLDataNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DLDataNotificationIEs } },
+ ...
+}
+
+DLDataNotificationIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA USAGE REPORT
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Data Usage Report
+--
+-- **************************************************************
+
+DataUsageReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DataUsageReportIEs } },
+ ...
+}
+
+DataUsageReportIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
+ { ID id-Data-Usage-Report-List CRITICALITY ignore TYPE Data-Usage-Report-List PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs E1AP-PRIVATE-IES ::= {
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..598ea007c5
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
@@ -0,0 +1,290 @@
+-- 3GPP TS 38.463 V15.0.0 (2018-06)
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+E1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+ngran-access (22) modules (3) e1ap (5) version1 (1) e1ap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+
+FROM E1AP-CommonDataTypes
+ Reset,
+ ResetAcknowledge,
+ ErrorIndication,
+ GNB-CU-UP-E1SetupRequest,
+ GNB-CU-UP-E1SetupResponse,
+ GNB-CU-UP-E1SetupFailure,
+ GNB-CU-CP-E1SetupRequest,
+ GNB-CU-CP-E1SetupResponse,
+ GNB-CU-CP-E1SetupFailure,
+ GNB-CU-UP-ConfigurationUpdate,
+ GNB-CU-UP-ConfigurationUpdateAcknowledge,
+ GNB-CU-UP-ConfigurationUpdateFailure,
+ GNB-CU-CP-ConfigurationUpdate,
+ GNB-CU-CP-ConfigurationUpdateAcknowledge,
+ GNB-CU-CP-ConfigurationUpdateFailure,
+ BearerContextSetupRequest,
+ BearerContextSetupResponse,
+ BearerContextSetupFailure,
+ BearerContextModificationRequest,
+ BearerContextModificationResponse,
+ BearerContextModificationFailure,
+ BearerContextModificationRequired,
+
+BearerContextModificationConfirm,
+ BearerContextReleaseCommand,
+ BearerContextReleaseComplete,
+ BearerContextReleaseRequest,
+ BearerContextInactivityNotification,
+ DLDataNotification,
+ DataUsageReport,
+ E1ReleaseRequest,
+ E1ReleaseResponse,
+ PrivateMessage
+
+FROM E1AP-PDU-Contents
+ id-reset,
+ id-errorIndication,
+ id-gNB-CU-UP-E1Setup,
+ id-gNB-CU-CP-E1Setup,
+ id-gNB-CU-UP-ConfigurationUpdate,
+ id-gNB-CU-CP-ConfigurationUpdate,
+ id-e1Release,
+ id-bearerContextSetup,
+ id-bearerContextModification,
+ id-bearerContextModificationRequired,
+ id-bearerContextRelease,
+ id-bearerContextReleaseRequest,
+ id-bearerContextInactivityNotification,
+ id-dLDataNotification,
+ id-dataUsageReport,
+ id-privateMessage
+
+FROM E1AP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+E1AP-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
+--
+-- **************************************************************
+
+E1AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode E1AP-ELEMENTARY-PROCEDURE.&procedureCode ({E1AP-ELEMENTARY-PROCEDURES}),
+ criticality E1AP-ELEMENTARY-PROCEDURE.&criticality ({E1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value E1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({E1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode E1AP-ELEMENTARY-PROCEDURE.&procedureCode ({E1AP-ELEMENTARY-PROCEDURES}),
+ criticality E1AP-ELEMENTARY-PROCEDURE.&criticality ({E1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value E1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({E1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode E1AP-ELEMENTARY-PROCEDURE.&procedureCode ({E1AP-ELEMENTARY-PROCEDURES}),
+ criticality E1AP-ELEMENTARY-PROCEDURE.&criticality ({E1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value E1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({E1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+E1AP-ELEMENTARY-PROCEDURES E1AP-ELEMENTARY-PROCEDURE ::= {
+ E1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ E1AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+
+ ...
+}
+
+E1AP-ELEMENTARY-PROCEDURES-CLASS-1 E1AP-ELEMENTARY-PROCEDURE ::= {
+ reset |
+ gNB-CU-UP-E1Setup |
+ gNB-CU-CP-E1Setup |
+ gNB-CU-UP-ConfigurationUpdate |
+ gNB-CU-CP-ConfigurationUpdate |
+ e1Release |
+ bearerContextSetup |
+ bearerContextModification |
+ bearerContextModificationRequired |
+ bearerContextRelease ,
+ ...
+}
+
+E1AP-ELEMENTARY-PROCEDURES-CLASS-2 E1AP-ELEMENTARY-PROCEDURE ::= {
+ errorIndication |
+ bearerContextReleaseRequest |
+ bearerContextInactivityNotification |
+ dLDataNotification |
+ dataUsageReport |
+ privateMessage ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+reset E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-reset
+ CRITICALITY reject
+}
+
+errorIndication E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-errorIndication
+ CRITICALITY ignore
+}
+
+gNB-CU-UP-E1Setup E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GNB-CU-UP-E1SetupRequest
+ SUCCESSFUL OUTCOME GNB-CU-UP-E1SetupResponse
+ UNSUCCESSFUL OUTCOME GNB-CU-UP-E1SetupFailure
+ PROCEDURE CODE id-gNB-CU-UP-E1Setup
+ CRITICALITY reject
+}
+
+gNB-CU-CP-E1Setup E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GNB-CU-CP-E1SetupRequest
+ SUCCESSFUL OUTCOME GNB-CU-CP-E1SetupResponse
+ UNSUCCESSFUL OUTCOME GNB-CU-CP-E1SetupFailure
+ PROCEDURE CODE id-gNB-CU-CP-E1Setup
+ CRITICALITY reject
+}
+
+gNB-CU-UP-ConfigurationUpdate E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GNB-CU-UP-ConfigurationUpdate
+ SUCCESSFUL OUTCOME GNB-CU-UP-ConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME GNB-CU-UP-ConfigurationUpdateFailure
+ PROCEDURE CODE id-gNB-CU-UP-ConfigurationUpdate
+ CRITICALITY reject
+}
+
+gNB-CU-CP-ConfigurationUpdate E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE GNB-CU-CP-ConfigurationUpdate
+ SUCCESSFUL OUTCOME GNB-CU-CP-ConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME GNB-CU-CP-ConfigurationUpdateFailure
+ PROCEDURE CODE id-gNB-CU-CP-ConfigurationUpdate
+ CRITICALITY reject
+}
+
+e1Release E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E1ReleaseRequest
+ SUCCESSFUL OUTCOME E1ReleaseResponse
+ PROCEDURE CODE id-e1Release
+ CRITICALITY reject
+}
+
+bearerContextSetup E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerContextSetupRequest
+ SUCCESSFUL OUTCOME BearerContextSetupResponse
+ UNSUCCESSFUL OUTCOME BearerContextSetupFailure
+ PROCEDURE CODE id-bearerContextSetup
+ CRITICALITY reject
+}
+
+bearerContextModification E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerContextModificationRequest
+ SUCCESSFUL OUTCOME BearerContextModificationResponse
+ UNSUCCESSFUL OUTCOME BearerContextModificationFailure
+ PROCEDURE CODE id-bearerContextModification
+ CRITICALITY reject
+}
+
+bearerContextModificationRequired E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerContextModificationRequired
+ SUCCESSFUL OUTCOME BearerContextModificationConfirm
+ PROCEDURE CODE id-bearerContextModificationRequired
+ CRITICALITY reject
+}
+
+bearerContextRelease E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerContextReleaseCommand
+ SUCCESSFUL OUTCOME BearerContextReleaseComplete
+ PROCEDURE CODE id-bearerContextRelease
+ CRITICALITY reject
+}
+
+bearerContextReleaseRequest E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerContextReleaseRequest
+ PROCEDURE CODE id-bearerContextReleaseRequest
+ CRITICALITY ignore
+}
+
+bearerContextInactivityNotification E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BearerContextInactivityNotification
+ PROCEDURE CODE id-bearerContextInactivityNotification
+ CRITICALITY ignore
+}
+
+dLDataNotification E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DLDataNotification
+ PROCEDURE CODE id-dLDataNotification
+ CRITICALITY ignore
+}
+
+dataUsageReport E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataUsageReport
+ PROCEDURE CODE id-dataUsageReport
+ CRITICALITY ignore
+}
+
+
+privateMessage E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+END
diff --git a/epan/dissectors/asn1/e1ap/e1ap.cnf b/epan/dissectors/asn1/e1ap/e1ap.cnf
new file mode 100644
index 0000000000..7f70c03440
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/e1ap.cnf
@@ -0,0 +1,389 @@
+# e1ap.cnf
+# e1ap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.USE_VALS_EXT
+ProcedureCode
+ProtocolIE-ID
+
+#.EXPORTS
+
+#.PDU
+E1AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+CP-TNL-Information
+Presence
+ProtocolIE-ContainerList
+ProtocolExtensionID
+#.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
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E1AP-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
+
+#.FN_BODY ProtocolIE-ID VAL_PTR=&e1ap_data->protocol_ie_id
+ e1ap_private_data_t *e1ap_data = e1ap_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(e1ap_data->protocol_ie_id, &e1ap_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=&e1ap_data->protocol_extension_id
+# e1ap_private_data_t *e1ap_data = e1ap_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 = &e1ap_data->procedure_code
+ e1ap_private_data_t *e1ap_data = e1ap_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
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_data->message_type = INITIATING_MESSAGE;
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+#.FN_HDR SuccessfulOutcome/value
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_data->message_type = SUCCESSFUL_OUTCOME;
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+#.FN_HDR UnsuccessfulOutcome/value
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_data->message_type = UNSUCCESSFUL_OUTCOME;
+#.END
+
+#.FN_HDR PrivateIE-ID
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_data->obj_id = NULL;
+
+#.FN_BODY PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &e1ap_data->obj_id
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+%(DEFAULT_BODY)s
+
+#.FN_BODY PrivateIE-Field/value
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ if (e1ap_data->obj_id) {
+ offset = call_per_oid_callback(e1ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
+ } else {
+%(DEFAULT_BODY)s
+ }
+
+#.ASSIGN_VALUE_TO_TYPE # E1AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-reset ProcedureCode
+id-errorIndication ProcedureCode
+id-privateMessage ProcedureCode
+id-gNB-CU-UP-E1Setup ProcedureCode
+id-gNB-CU-CP-E1Setup ProcedureCode
+id-gNB-CU-UP-ConfigurationUpdate ProcedureCode
+id-gNB-CU-CP-ConfigurationUpdate ProcedureCode
+id-e1Release ProcedureCode
+id-bearerContextSetup ProcedureCode
+id-bearerContextModification ProcedureCode
+id-bearerContextModificationRequired ProcedureCode
+id-bearerContextRelease ProcedureCode
+id-bearerContextReleaseRequest ProcedureCode
+id-bearerContextInactivityNotification ProcedureCode
+id-dLDataNotification ProcedureCode
+id-dataUsageReport ProcedureCode
+
+# ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-gNB-CU-CP-UE-E1AP-ID ProtocolIE-ID
+id-gNB-CU-UP-UE-E1AP-ID ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-UE-associatedLogicalE1-ConnectionItem ProtocolIE-ID
+id-UE-associatedLogicalE1-ConnectionListResAck ProtocolIE-ID
+id-gNB-CU-UP-ID ProtocolIE-ID
+id-gNB-CU-UP-Name ProtocolIE-ID
+id-gNB-CU-CP-Name ProtocolIE-ID
+id-CNSupport ProtocolIE-ID
+id-SupportedPLMNs ProtocolIE-ID
+id-SupportedPLMNs-Item ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-SecurityInformation ProtocolIE-ID
+id-UEDLAggregateMaximumBitRate ProtocolIE-ID
+id-System-BearerContextSetupRequest ProtocolIE-ID
+id-System-BearerContextSetupResponse ProtocolIE-ID
+id-BearerContextStatusChange ProtocolIE-ID
+id-System-BearerContextModificationRequest ProtocolIE-ID
+id-System-BearerContextModificationResponse ProtocolIE-ID
+id-System-BearerContextModificationConfirm ProtocolIE-ID
+id-System-BearerContextModificationRequired ProtocolIE-ID
+id-DRB-Status-List ProtocolIE-ID
+id-DRB-Status-Item ProtocolIE-ID
+id-DRB-Activity-List ProtocolIE-ID
+id-DRB-Activity-Item ProtocolIE-ID
+id-Data-Usage-Report-List ProtocolIE-ID
+#.END
+
+#.REGISTER
+
+#E1AP-PROTOCOL-IES
+Cause N e1ap.ies id-Cause
+CriticalityDiagnostics N e1ap.ies id-CriticalityDiagnostics
+GNB-CU-CP-UE-E1AP-ID N e1ap.ies id-gNB-CU-CP-UE-E1AP-ID
+GNB-CU-UP-UE-E1AP-ID N e1ap.ies id-gNB-CU-UP-UE-E1AP-ID
+ResetType N e1ap.ies id-ResetType
+UE-associatedLogicalE1-ConnectionItem N e1ap.ies id-UE-associatedLogicalE1-ConnectionItem
+UE-associatedLogicalE1-ConnectionListResAck N e1ap.ies id-UE-associatedLogicalE1-ConnectionListResAck
+GNB-CU-UP-ID N e1ap.ies id-gNB-CU-UP-ID
+GNB-CU-UP-Name N e1ap.ies id-gNB-CU-UP-Name
+GNB-CU-CP-Name N e1ap.ies id-gNB-CU-CP-Name
+CNSupport N e1ap.ies id-CNSupport
+SupportedPLMNs-List N e1ap.ies id-SupportedPLMNs
+SupportedPLMNs-Item N e1ap.ies id-SupportedPLMNs-Item
+TimeToWait N e1ap.ies id-TimeToWait
+SecurityInformation N e1ap.ies id-SecurityInformation
+BitRate N e1ap.ies id-UEDLAggregateMaximumBitRate
+System-BearerContextSetupRequest N e1ap.ies id-System-BearerContextSetupRequest
+System-BearerContextSetupResponse N e1ap.ies id-System-BearerContextSetupResponse
+BearerContextStatusChange N e1ap.ies id-BearerContextStatusChange
+System-BearerContextModificationRequest N e1ap.ies id-System-BearerContextModificationRequest
+System-BearerContextModificationResponse N e1ap.ies id-System-BearerContextModificationResponse
+System-BearerContextModificationConfirm N e1ap.ies id-System-BearerContextModificationConfirm
+System-BearerContextModificationRequired N e1ap.ies id-System-BearerContextModificationRequired
+DRB-Status-List N e1ap.ies id-DRB-Status-List
+DRB-Status-Item N e1ap.ies id-DRB-Status-Item
+DRB-Activity-List N e1ap.ies id-DRB-Activity-List
+DRB-Activity-Item N e1ap.ies id-DRB-Activity-Item
+Data-Usage-Report-List N e1ap.ies id-Data-Usage-Report-List
+
+#E1AP-PROTOCOL-EXTENSION
+
+#E1AP-ELEMENTARY-PROCEDURE
+Reset N e1ap.proc.imsg id-reset
+ResetAcknowledge N e1ap.proc.sout id-reset
+
+ErrorIndication N e1ap.proc.imsg id-errorIndication
+
+GNB-CU-UP-E1SetupRequest N e1ap.proc.imsg id-gNB-CU-UP-E1Setup
+GNB-CU-UP-E1SetupResponse N e1ap.proc.sout id-gNB-CU-UP-E1Setup
+GNB-CU-UP-E1SetupFailure N e1ap.proc.uout id-gNB-CU-UP-E1Setup
+
+GNB-CU-CP-E1SetupRequest N e1ap.proc.imsg id-gNB-CU-CP-E1Setup
+GNB-CU-CP-E1SetupResponse N e1ap.proc.sout id-gNB-CU-CP-E1Setup
+GNB-CU-CP-E1SetupFailure N e1ap.proc.uout id-gNB-CU-CP-E1Setup
+
+GNB-CU-UP-ConfigurationUpdate N e1ap.proc.imsg id-gNB-CU-UP-ConfigurationUpdate
+GNB-CU-UP-ConfigurationUpdateAcknowledge N e1ap.proc.sout id-gNB-CU-UP-ConfigurationUpdate
+GNB-CU-UP-ConfigurationUpdateFailure N e1ap.proc.uout id-gNB-CU-UP-ConfigurationUpdate
+
+GNB-CU-CP-ConfigurationUpdate N e1ap.proc.imsg id-gNB-CU-CP-ConfigurationUpdate
+GNB-CU-CP-ConfigurationUpdateAcknowledge N e1ap.proc.sout id-gNB-CU-CP-ConfigurationUpdate
+GNB-CU-CP-ConfigurationUpdateFailure N e1ap.proc.uout id-gNB-CU-CP-ConfigurationUpdate
+
+E1ReleaseRequest N e1ap.proc.imsg id-e1Release
+E1ReleaseResponse N e1ap.proc.sout id-e1Release
+
+BearerContextSetupRequest N e1ap.proc.imsg id-bearerContextSetup
+BearerContextSetupResponse N e1ap.proc.sout id-bearerContextSetup
+BearerContextSetupFailure N e1ap.proc.uout id-bearerContextSetup
+
+BearerContextModificationRequest N e1ap.proc.imsg id-bearerContextModification
+BearerContextModificationResponse N e1ap.proc.sout id-bearerContextModification
+BearerContextModificationFailure N e1ap.proc.uout id-bearerContextModification
+
+BearerContextModificationRequired N e1ap.proc.imsg id-bearerContextModificationRequired
+BearerContextModificationConfirm N e1ap.proc.sout id-bearerContextModificationRequired
+
+BearerContextReleaseCommand N e1ap.proc.imsg id-bearerContextRelease
+BearerContextReleaseComplete N e1ap.proc.sout id-bearerContextRelease
+
+BearerContextReleaseRequest N e1ap.proc.imsg id-bearerContextReleaseRequest
+
+BearerContextInactivityNotification N e1ap.proc.imsg id-bearerContextInactivityNotification
+
+DLDataNotification N e1ap.proc.imsg id-dLDataNotification
+
+DataUsageReport N e1ap.proc.imsg id-dataUsageReport
+
+PrivateMessage N e1ap.proc.imsg id-privateMessage
+
+#.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_e1ap_PLMN_Identity);
+ dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ }
+
+#.TYPE_ATTR
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+
+#.FN_BODY DRB-Usage-Report-Item/startTimeStamp VAL_PTR = &timestamp_tvb
+ tvbuff_t *timestamp_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR DRB-Usage-Report-Item/startTimeStamp
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+#.FN_BODY DRB-Usage-Report-Item/endTimeStamp VAL_PTR = &timestamp_tvb
+ tvbuff_t *timestamp_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR DRB-Usage-Report-Item/endTimeStamp
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+#.TYPE_ATTR
+DRB-Usage-Report-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+
+#.TYPE_ATTR
+DRB-Usage-Report-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+
+#.TYPE_ATTR
+MaxPacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(e1ap_MaxPacketLossRate_fmt)
+
+#.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_e1ap_TransportLayerAddress);
+ if (tvb_len == 4) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ } else if (tvb_len == 16) {
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv6, param_tvb, 0, 16, ENC_NA);
+ } else if (tvb_len == 20) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_e1ap_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 ErrorIndication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
+#.FN_HDR GNB-CU-UP-E1SetupRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupRequest");
+#.FN_HDR GNB-CU-UP-E1SetupResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupResponse");
+#.FN_HDR GNB-CU-UP-E1SetupFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupFailure");
+#.FN_HDR GNB-CU-CP-E1SetupRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupRequest");
+#.FN_HDR GNB-CU-CP-E1SetupResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupResponse");
+#.FN_HDR GNB-CU-CP-E1SetupFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupFailure");
+#.FN_HDR GNB-CU-UP-ConfigurationUpdate
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdate");
+#.FN_HDR GNB-CU-UP-ConfigurationUpdateAcknowledge
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdateAcknowledge");
+#.FN_HDR GNB-CU-UP-ConfigurationUpdateFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdateFailure");
+#.FN_HDR GNB-CU-CP-ConfigurationUpdate
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdate");
+#.FN_HDR GNB-CU-CP-ConfigurationUpdateAcknowledge
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdateAcknowledge");
+#.FN_HDR GNB-CU-CP-ConfigurationUpdateFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdateFailure");
+#.FN_HDR E1ReleaseRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E1ReleaseRequest");
+#.FN_HDR E1ReleaseResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E1ReleaseResponse");
+#.FN_HDR BearerContextSetupRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupRequest");
+#.FN_HDR BearerContextSetupResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupResponse");
+#.FN_HDR BearerContextSetupFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupFailure");
+#.FN_HDR BearerContextModificationRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationRequest");
+#.FN_HDR BearerContextModificationResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationResponse");
+#.FN_HDR BearerContextModificationFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationFailure");
+#.FN_HDR BearerContextModificationRequired
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationRequired");
+#.FN_HDR BearerContextModificationConfirm
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationConfirm");
+#.FN_HDR BearerContextReleaseCommand
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseCommand");
+#.FN_HDR BearerContextReleaseComplete
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseComplete");
+#.FN_HDR BearerContextReleaseRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseRequest");
+#.FN_HDR BearerContextInactivityNotification
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextInactivityNotification");
+#.FN_HDR DLDataNotification
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLDataNotification");
+#.FN_HDR DataUsageReport
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataUsageReport");
+#.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/e1ap/packet-e1ap-template.c b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
new file mode 100644
index 0000000000..91f819f080
--- /dev/null
+++ b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
@@ -0,0 +1,233 @@
+/* packet-e1ap.c
+ * Routines for E-UTRAN E1 Application Protocol (E1AP) 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.463 V15.0.0 (2018-06)
+ */
+
+#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-e212.h"
+#include "packet-ntp.h"
+
+#define PNAME "E1 Application Protocol"
+#define PSNAME "E1AP"
+#define PFNAME "e1ap"
+
+// port number not assigned by IANA yet
+//#define SCTP_PORT_E1AP 38462
+
+void proto_register_e1ap(void);
+void proto_reg_handoff_e1ap(void);
+
+#include "packet-e1ap-val.h"
+
+/* Initialize the protocol and registered fields */
+static int proto_e1ap = -1;
+
+static int hf_e1ap_transportLayerAddressIPv4 = -1;
+static int hf_e1ap_transportLayerAddressIPv6 = -1;
+#include "packet-e1ap-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_e1ap = -1;
+static gint ett_e1ap_PLMN_Identity = -1;
+static gint ett_e1ap_TransportLayerAddress = -1;
+#include "packet-e1ap-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;
+} e1ap_private_data_t;
+
+typedef struct {
+ guint32 message_type;
+ guint32 ProcedureCode;
+ guint32 ProtocolIE_ID;
+ guint32 ProtocolExtensionID;
+} e1ap_ctx_t;
+
+/* Global variables */
+static dissector_handle_t e1ap_handle;
+
+/* Dissector tables */
+static dissector_table_t e1ap_ies_dissector_table;
+static dissector_table_t e1ap_extension_dissector_table;
+static dissector_table_t e1ap_proc_imsg_dissector_table;
+static dissector_table_t e1ap_proc_sout_dissector_table;
+static dissector_table_t e1ap_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 void
+e1ap_MaxPacketLossRate_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v);
+}
+
+static e1ap_private_data_t*
+e1ap_get_private_data(packet_info *pinfo)
+{
+ e1ap_private_data_t *e1ap_data = (e1ap_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_e1ap, 0);
+ if (!e1ap_data) {
+ e1ap_data = wmem_new0(pinfo->pool, e1ap_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_e1ap, 0, e1ap_data);
+ }
+ return e1ap_data;
+}
+
+#include "packet-e1ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ e1ap_ctx_t e1ap_ctx;
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ e1ap_ctx.message_type = e1ap_data->message_type;
+ e1ap_ctx.ProcedureCode = e1ap_data->procedure_code;
+ e1ap_ctx.ProtocolIE_ID = e1ap_data->protocol_ie_id;
+ e1ap_ctx.ProtocolExtensionID = e1ap_data->protocol_extension_id;
+
+ return (dissector_try_uint_new(e1ap_ies_dissector_table, e1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+//static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+//{
+// e1ap_ctx_t e1ap_ctx;
+// e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+//
+// e1ap_ctx.message_type = e1ap_data->message_type;
+// e1ap_ctx.ProcedureCode = e1ap_data->procedure_code;
+// e1ap_ctx.ProtocolIE_ID = e1ap_data->protocol_ie_id;
+// e1ap_ctx.ProtocolExtensionID = e1ap_data->protocol_extension_id;
+//
+// return (dissector_try_uint_new(e1ap_extension_dissector_table, e1ap_data->protocol_extension_id, tvb, pinfo, tree, FALSE, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+//}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(e1ap_proc_imsg_dissector_table, e1ap_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)
+{
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(e1ap_proc_sout_dissector_table, e1ap_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)
+{
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(e1ap_proc_uout_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_e1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *e1ap_item = NULL;
+ proto_tree *e1ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "E1AP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* create the e1ap protocol tree */
+ e1ap_item = proto_tree_add_item(tree, proto_e1ap, tvb, 0, -1, ENC_NA);
+ e1ap_tree = proto_item_add_subtree(e1ap_item, ett_e1ap);
+
+ dissect_E1AP_PDU_PDU(tvb, pinfo, e1ap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+void proto_register_e1ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_e1ap_transportLayerAddressIPv4,
+ { "IPv4 transportLayerAddress", "e1ap.transportLayerAddressIPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_transportLayerAddressIPv6,
+ { "IPv6 transportLayerAddress", "e1ap.transportLayerAddressIPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-e1ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_e1ap,
+ &ett_e1ap_PLMN_Identity,
+ &ett_e1ap_TransportLayerAddress,
+#include "packet-e1ap-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_e1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_e1ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ e1ap_handle = register_dissector("e1ap", dissect_e1ap, proto_e1ap);
+
+ /* Register dissector tables */
+ e1ap_ies_dissector_table = register_dissector_table("e1ap.ies", "E1AP-PROTOCOL-IES", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_extension_dissector_table = register_dissector_table("e1ap.extension", "E1AP-PROTOCOL-EXTENSION", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_proc_imsg_dissector_table = register_dissector_table("e1ap.proc.imsg", "E1AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_proc_sout_dissector_table = register_dissector_table("e1ap.proc.sout", "E1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_proc_uout_dissector_table = register_dissector_table("e1ap.proc.uout", "E1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e1ap, FT_UINT32, BASE_DEC);
+}
+
+void
+proto_reg_handoff_e1ap(void)
+{
+ //dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E1AP, e1ap_handle);
+ dissector_add_uint("sctp.ppi", E1AP_PROTOCOL_ID, e1ap_handle);
+#include "packet-e1ap-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/packet-e1ap.c b/epan/dissectors/packet-e1ap.c
new file mode 100644
index 0000000000..ee910cdcb7
--- /dev/null
+++ b/epan/dissectors/packet-e1ap.c
@@ -0,0 +1,7102 @@
+/* Do not modify this file. Changes will be overwritten. */
+/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
+/* packet-e1ap.c */
+/* asn2wrs.py -p e1ap -c ./e1ap.cnf -s ./packet-e1ap-template -D . -O ../.. E1AP-CommonDataTypes.asn E1AP-Constants.asn E1AP-Containers.asn E1AP-IEs.asn E1AP-PDU-Contents.asn E1AP-PDU-Descriptions.asn */
+
+/* Input file: packet-e1ap-template.c */
+
+#line 1 "./asn1/e1ap/packet-e1ap-template.c"
+/* packet-e1ap.c
+ * Routines for E-UTRAN E1 Application Protocol (E1AP) 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.463 V15.0.0 (2018-06)
+ */
+
+#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-e212.h"
+#include "packet-ntp.h"
+
+#define PNAME "E1 Application Protocol"
+#define PSNAME "E1AP"
+#define PFNAME "e1ap"
+
+// port number not assigned by IANA yet
+//#define SCTP_PORT_E1AP 38462
+
+void proto_register_e1ap(void);
+void proto_reg_handoff_e1ap(void);
+
+
+/*--- Included file: packet-e1ap-val.h ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-val.h"
+#define maxPrivateIEs 65535
+#define maxProtocolExtensions 65535
+#define maxProtocolIEs 65535
+#define maxnoofErrors 256
+#define maxnoofSPLMNs 6
+#define maxnoofSliceItems 1024
+#define maxnoofIndividualE1ConnectionsToReset 65536
+#define maxnoofEUTRANQOSParameters 256
+#define maxnoofNGRANQOSParameters 256
+#define maxnoofDRBs 32
+#define maxnoofNRCGI 512
+#define maxnoofPDUSessionResource 256
+#define maxnoofQoSFlows 64
+#define maxnoofUPParameters 4
+#define maxnoofCellGroups 4
+#define maxnooftimeperiods 2
+
+typedef enum _ProcedureCode_enum {
+ id_reset = 0,
+ id_errorIndication = 1,
+ id_privateMessage = 2,
+ id_gNB_CU_UP_E1Setup = 3,
+ id_gNB_CU_CP_E1Setup = 4,
+ id_gNB_CU_UP_ConfigurationUpdate = 5,
+ id_gNB_CU_CP_ConfigurationUpdate = 6,
+ id_e1Release = 7,
+ id_bearerContextSetup = 8,
+ id_bearerContextModification = 9,
+ id_bearerContextModificationRequired = 10,
+ id_bearerContextRelease = 11,
+ id_bearerContextReleaseRequest = 12,
+ id_bearerContextInactivityNotification = 13,
+ id_dLDataNotification = 14,
+ id_dataUsageReport = 15
+} ProcedureCode_enum;
+
+typedef enum _ProtocolIE_ID_enum {
+ id_Cause = 0,
+ id_CriticalityDiagnostics = 1,
+ id_gNB_CU_CP_UE_E1AP_ID = 2,
+ id_gNB_CU_UP_UE_E1AP_ID = 3,
+ id_ResetType = 4,
+ id_UE_associatedLogicalE1_ConnectionItem = 5,
+ id_UE_associatedLogicalE1_ConnectionListResAck = 6,
+ id_gNB_CU_UP_ID = 7,
+ id_gNB_CU_UP_Name = 8,
+ id_gNB_CU_CP_Name = 9,
+ id_CNSupport = 10,
+ id_SupportedPLMNs = 11,
+ id_SupportedPLMNs_Item = 12,
+ id_TimeToWait = 13,
+ id_SecurityInformation = 14,
+ id_UEDLAggregateMaximumBitRate = 15,
+ id_System_BearerContextSetupRequest = 16,
+ id_System_BearerContextSetupResponse = 17,
+ id_BearerContextStatusChange = 18,
+ id_System_BearerContextModificationRequest = 19,
+ id_System_BearerContextModificationResponse = 20,
+ id_System_BearerContextModificationConfirm = 21,
+ id_System_BearerContextModificationRequired = 22,
+ id_DRB_Status_List = 23,
+ id_DRB_Status_Item = 24,
+ id_DRB_Activity_List = 25,
+ id_DRB_Activity_Item = 26,
+ id_Data_Usage_Report_List = 27
+} ProtocolIE_ID_enum;
+
+/*--- End of included file: packet-e1ap-val.h ---*/
+#line 37 "./asn1/e1ap/packet-e1ap-template.c"
+
+/* Initialize the protocol and registered fields */
+static int proto_e1ap = -1;
+
+static int hf_e1ap_transportLayerAddressIPv4 = -1;
+static int hf_e1ap_transportLayerAddressIPv6 = -1;
+
+/*--- Included file: packet-e1ap-hf.c ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-hf.c"
+static int hf_e1ap_BearerContextStatusChange_PDU = -1; /* BearerContextStatusChange */
+static int hf_e1ap_BitRate_PDU = -1; /* BitRate */
+static int hf_e1ap_Cause_PDU = -1; /* Cause */
+static int hf_e1ap_CNSupport_PDU = -1; /* CNSupport */
+static int hf_e1ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
+static int hf_e1ap_Data_Usage_Report_List_PDU = -1; /* Data_Usage_Report_List */
+static int hf_e1ap_DRB_Activity_Item_PDU = -1; /* DRB_Activity_Item */
+static int hf_e1ap_DRB_Status_Item_PDU = -1; /* DRB_Status_Item */
+static int hf_e1ap_GNB_CU_CP_Name_PDU = -1; /* GNB_CU_CP_Name */
+static int hf_e1ap_GNB_CU_CP_UE_E1AP_ID_PDU = -1; /* GNB_CU_CP_UE_E1AP_ID */
+static int hf_e1ap_GNB_CU_UP_ID_PDU = -1; /* GNB_CU_UP_ID */
+static int hf_e1ap_GNB_CU_UP_Name_PDU = -1; /* GNB_CU_UP_Name */
+static int hf_e1ap_GNB_CU_UP_UE_E1AP_ID_PDU = -1; /* GNB_CU_UP_UE_E1AP_ID */
+static int hf_e1ap_SecurityInformation_PDU = -1; /* SecurityInformation */
+static int hf_e1ap_TimeToWait_PDU = -1; /* TimeToWait */
+static int hf_e1ap_UE_associatedLogicalE1_ConnectionItem_PDU = -1; /* UE_associatedLogicalE1_ConnectionItem */
+static int hf_e1ap_Reset_PDU = -1; /* Reset */
+static int hf_e1ap_ResetType_PDU = -1; /* ResetType */
+static int hf_e1ap_ResetAcknowledge_PDU = -1; /* ResetAcknowledge */
+static int hf_e1ap_UE_associatedLogicalE1_ConnectionListResAck_PDU = -1; /* UE_associatedLogicalE1_ConnectionListResAck */
+static int hf_e1ap_ErrorIndication_PDU = -1; /* ErrorIndication */
+static int hf_e1ap_GNB_CU_UP_E1SetupRequest_PDU = -1; /* GNB_CU_UP_E1SetupRequest */
+static int hf_e1ap_SupportedPLMNs_List_PDU = -1; /* SupportedPLMNs_List */
+static int hf_e1ap_SupportedPLMNs_Item_PDU = -1; /* SupportedPLMNs_Item */
+static int hf_e1ap_GNB_CU_UP_E1SetupResponse_PDU = -1; /* GNB_CU_UP_E1SetupResponse */
+static int hf_e1ap_GNB_CU_UP_E1SetupFailure_PDU = -1; /* GNB_CU_UP_E1SetupFailure */
+static int hf_e1ap_GNB_CU_CP_E1SetupRequest_PDU = -1; /* GNB_CU_CP_E1SetupRequest */
+static int hf_e1ap_GNB_CU_CP_E1SetupResponse_PDU = -1; /* GNB_CU_CP_E1SetupResponse */
+static int hf_e1ap_GNB_CU_CP_E1SetupFailure_PDU = -1; /* GNB_CU_CP_E1SetupFailure */
+static int hf_e1ap_GNB_CU_UP_ConfigurationUpdate_PDU = -1; /* GNB_CU_UP_ConfigurationUpdate */
+static int hf_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge_PDU = -1; /* GNB_CU_UP_ConfigurationUpdateAcknowledge */
+static int hf_e1ap_GNB_CU_UP_ConfigurationUpdateFailure_PDU = -1; /* GNB_CU_UP_ConfigurationUpdateFailure */
+static int hf_e1ap_GNB_CU_CP_ConfigurationUpdate_PDU = -1; /* GNB_CU_CP_ConfigurationUpdate */
+static int hf_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge_PDU = -1; /* GNB_CU_CP_ConfigurationUpdateAcknowledge */
+static int hf_e1ap_GNB_CU_CP_ConfigurationUpdateFailure_PDU = -1; /* GNB_CU_CP_ConfigurationUpdateFailure */
+static int hf_e1ap_E1ReleaseRequest_PDU = -1; /* E1ReleaseRequest */
+static int hf_e1ap_E1ReleaseResponse_PDU = -1; /* E1ReleaseResponse */
+static int hf_e1ap_BearerContextSetupRequest_PDU = -1; /* BearerContextSetupRequest */
+static int hf_e1ap_System_BearerContextSetupRequest_PDU = -1; /* System_BearerContextSetupRequest */
+static int hf_e1ap_BearerContextSetupResponse_PDU = -1; /* BearerContextSetupResponse */
+static int hf_e1ap_System_BearerContextSetupResponse_PDU = -1; /* System_BearerContextSetupResponse */
+static int hf_e1ap_BearerContextSetupFailure_PDU = -1; /* BearerContextSetupFailure */
+static int hf_e1ap_BearerContextModificationRequest_PDU = -1; /* BearerContextModificationRequest */
+static int hf_e1ap_System_BearerContextModificationRequest_PDU = -1; /* System_BearerContextModificationRequest */
+static int hf_e1ap_BearerContextModificationResponse_PDU = -1; /* BearerContextModificationResponse */
+static int hf_e1ap_System_BearerContextModificationResponse_PDU = -1; /* System_BearerContextModificationResponse */
+static int hf_e1ap_BearerContextModificationFailure_PDU = -1; /* BearerContextModificationFailure */
+static int hf_e1ap_BearerContextModificationRequired_PDU = -1; /* BearerContextModificationRequired */
+static int hf_e1ap_System_BearerContextModificationRequired_PDU = -1; /* System_BearerContextModificationRequired */
+static int hf_e1ap_BearerContextModificationConfirm_PDU = -1; /* BearerContextModificationConfirm */
+static int hf_e1ap_System_BearerContextModificationConfirm_PDU = -1; /* System_BearerContextModificationConfirm */
+static int hf_e1ap_BearerContextReleaseCommand_PDU = -1; /* BearerContextReleaseCommand */
+static int hf_e1ap_BearerContextReleaseComplete_PDU = -1; /* BearerContextReleaseComplete */
+static int hf_e1ap_BearerContextReleaseRequest_PDU = -1; /* BearerContextReleaseRequest */
+static int hf_e1ap_DRB_Status_List_PDU = -1; /* DRB_Status_List */
+static int hf_e1ap_BearerContextInactivityNotification_PDU = -1; /* BearerContextInactivityNotification */
+static int hf_e1ap_DRB_Activity_List_PDU = -1; /* DRB_Activity_List */
+static int hf_e1ap_DLDataNotification_PDU = -1; /* DLDataNotification */
+static int hf_e1ap_DataUsageReport_PDU = -1; /* DataUsageReport */
+static int hf_e1ap_PrivateMessage_PDU = -1; /* PrivateMessage */
+static int hf_e1ap_E1AP_PDU_PDU = -1; /* E1AP_PDU */
+static int hf_e1ap_local = -1; /* INTEGER_0_maxPrivateIEs */
+static int hf_e1ap_global = -1; /* T_global */
+static int hf_e1ap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
+static int hf_e1ap_id = -1; /* ProtocolIE_ID */
+static int hf_e1ap_criticality = -1; /* Criticality */
+static int hf_e1ap_ie_field_value = -1; /* T_ie_field_value */
+static int hf_e1ap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */
+static int hf_e1ap_ext_id = -1; /* ProtocolIE_ID */
+static int hf_e1ap_extensionValue = -1; /* T_extensionValue */
+static int hf_e1ap_PrivateIE_Container_item = -1; /* PrivateIE_Field */
+static int hf_e1ap_private_id = -1; /* PrivateIE_ID */
+static int hf_e1ap_value = -1; /* T_value */
+static int hf_e1ap_radioNetwork = -1; /* CauseRadioNetwork */
+static int hf_e1ap_transport = -1; /* CauseTransport */
+static int hf_e1ap_protocol = -1; /* CauseProtocol */
+static int hf_e1ap_misc = -1; /* CauseMisc */
+static int hf_e1ap_Cell_Group_Information_item = -1; /* Cell_Group_Information_Item */
+static int hf_e1ap_cell_Group_ID = -1; /* Cell_Gorup_ID */
+static int hf_e1ap_uL_Configuration = -1; /* UL_Configuration */
+static int hf_e1ap_dL_TX_Stop = -1; /* DL_TX_Stop */
+static int hf_e1ap_rAT_Type = -1; /* RAT_Type */
+static int hf_e1ap_iE_Extensions = -1; /* ProtocolExtensionContainer */
+static int hf_e1ap_procedureCode = -1; /* ProcedureCode */
+static int hf_e1ap_triggeringMessage = -1; /* TriggeringMessage */
+static int hf_e1ap_procedureCriticality = -1; /* Criticality */
+static int hf_e1ap_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */
+static int hf_e1ap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */
+static int hf_e1ap_iECriticality = -1; /* Criticality */
+static int hf_e1ap_iE_ID = -1; /* ProtocolIE_ID */
+static int hf_e1ap_typeOfError = -1; /* TypeOfError */
+static int hf_e1ap_data_Forwarding_Request = -1; /* Data_Forwarding_Request */
+static int hf_e1ap_uL_Data_Forwarding = -1; /* UP_TNL_Information */
+static int hf_e1ap_dL_Data_Forwarding = -1; /* UP_TNL_Information */
+static int hf_e1ap_Data_Usage_Report_List_item = -1; /* Data_Usage_Report_Item */
+static int hf_e1ap_dRB_ID = -1; /* DRB_ID */
+static int hf_e1ap_dRB_Usage_Report_List = -1; /* DRB_Usage_Report_List */
+static int hf_e1ap_dRB_Activity = -1; /* DRB_Acivity */
+static int hf_e1ap_DRB_Confirm_Modified_List_EUTRAN_item = -1; /* DRB_Confirm_Modified_Item_EUTRAN */
+static int hf_e1ap_cell_Group_Information = -1; /* Cell_Group_Information */
+static int hf_e1ap_DRB_Confirm_Modified_List_NG_RAN_item = -1; /* DRB_Confirm_Modified_Item_NG_RAN */
+static int hf_e1ap_DRB_Failed_List_EUTRAN_item = -1; /* DRB_Failed_Item_EUTRAN */
+static int hf_e1ap_cause = -1; /* Cause */
+static int hf_e1ap_DRB_Failed_List_NG_RAN_item = -1; /* DRB_Failed_Item_NG_RAN */
+static int hf_e1ap_DRB_Failed_To_Modify_List_EUTRAN_item = -1; /* DRB_Failed_To_Modify_Item_EUTRAN */
+static int hf_e1ap_DRB_Failed_To_Modify_List_NG_RAN_item = -1; /* DRB_Failed_To_Modify_Item_NG_RAN */
+static int hf_e1ap_DRB_Modified_List_EUTRAN_item = -1; /* DRB_Modified_Item_EUTRAN */
+static int hf_e1ap_pDCP_UL_Count = -1; /* PDCP_Count */
+static int hf_e1ap_pDCP_DL_Count = -1; /* PDCP_Count */
+static int hf_e1ap_uL_UP_Transport_Parameters = -1; /* UP_Parameters */
+static int hf_e1ap_DRB_Modified_List_NG_RAN_item = -1; /* DRB_Modified_Item_NG_RAN */
+static int hf_e1ap_flow_Setup_List = -1; /* QoS_Flow_List */
+static int hf_e1ap_flow_Failed_List = -1; /* QoS_Flow_Failed_List */
+static int hf_e1ap_DRB_Required_To_Modify_List_EUTRAN_item = -1; /* DRB_Required_To_Modify_Item_EUTRAN */
+static int hf_e1ap_s1_DL_UP_TNL_Information = -1; /* UP_TNL_Information */
+static int hf_e1ap_data_Forwarding_Information_Response = -1; /* Data_Forwarding_Information_Response */
+static int hf_e1ap_gNB_CU_UP_CellGroupRelatedConfiguration = -1; /* GNB_CU_UP_CellGroupRelatedConfiguration */
+static int hf_e1ap_DRB_Required_To_Modify_List_NG_RAN_item = -1; /* DRB_Required_To_Modify_Item_NG_RAN */
+static int hf_e1ap_flow_To_Remove = -1; /* QoS_Flow_List */
+static int hf_e1ap_DRB_Setup_List_EUTRAN_item = -1; /* DRB_Setup_Item_EUTRAN */
+static int hf_e1ap_DRB_Setup_List_NG_RAN_item = -1; /* DRB_Setup_Item_NG_RAN */
+static int hf_e1ap_dRB_data_Forwarding_Information_Response = -1; /* Data_Forwarding_Information_Response */
+static int hf_e1ap_DRB_To_Modify_List_EUTRAN_item = -1; /* DRB_To_Modify_Item_EUTRAN */
+static int hf_e1ap_pDCP_Configuration = -1; /* PDCP_Configuration */
+static int hf_e1ap_eUTRAN_QoS = -1; /* EUTRAN_QoS */
+static int hf_e1ap_s1_UL_UP_TNL_Information = -1; /* UP_TNL_Information */
+static int hf_e1ap_data_Forwarding_Information_Request = -1; /* Data_Forwarding_Information_Request */
+static int hf_e1ap_pDCP_Count_Request = -1; /* PDCP_Count_Request */
+static int hf_e1ap_dL_UP_Parameters = -1; /* UP_Parameters */
+static int hf_e1ap_cell_Group_To_Add = -1; /* Cell_Group_Information */
+static int hf_e1ap_cell_Group_To_Modify = -1; /* Cell_Group_Information */
+static int hf_e1ap_cell_Group_To_Remove = -1; /* Cell_Group_Information */
+static int hf_e1ap_DRB_To_Modify_List_NG_RAN_item = -1; /* DRB_To_Modify_Item_NG_RAN */
+static int hf_e1ap_sDAP_Configuration = -1; /* SDAP_Configuration */
+static int hf_e1ap_dRB_Data_Forwarding_Information_Request = -1; /* Data_Forwarding_Information_Request */
+static int hf_e1ap_flow_Mapping_Information = -1; /* QoS_Flow_QoS_Parameter_List */
+static int hf_e1ap_DRB_To_Remove_List_EUTRAN_item = -1; /* DRB_To_Remove_Item_EUTRAN */
+static int hf_e1ap_DRB_To_Remove_List_NG_RAN_item = -1; /* DRB_To_Remove_Item_NG_RAN */
+static int hf_e1ap_DRB_To_Setup_List_EUTRAN_item = -1; /* DRB_To_Setup_Item_EUTRAN */
+static int hf_e1ap_DRB_To_Setup_List_NG_RAN_item = -1; /* DRB_To_Setup_Item_NG_RAN */
+static int hf_e1ap_DRB_Usage_Report_List_item = -1; /* DRB_Usage_Report_Item */
+static int hf_e1ap_startTimeStamp = -1; /* T_startTimeStamp */
+static int hf_e1ap_endTimeStamp = -1; /* T_endTimeStamp */
+static int hf_e1ap_usageCountUL = -1; /* INTEGER_0_18446744073709551615 */
+static int hf_e1ap_usageCountDL = -1; /* INTEGER_0_18446744073709551615 */
+static int hf_e1ap_qoSPriorityLevel = -1; /* INTEGER_1_127 */
+static int hf_e1ap_packetDelayBudget = -1; /* PacketDelayBudget */
+static int hf_e1ap_packetErrorRate = -1; /* PacketErrorRate */
+static int hf_e1ap_delayCritical = -1; /* T_delayCritical */
+static int hf_e1ap_averagingWindow = -1; /* AveragingWindow */
+static int hf_e1ap_maxDataBurstVolume = -1; /* MaxDataBurstVolume */
+static int hf_e1ap_priorityLevel = -1; /* PriorityLevel */
+static int hf_e1ap_pre_emptionCapability = -1; /* Pre_emptionCapability */
+static int hf_e1ap_pre_emptionVulnerability = -1; /* Pre_emptionVulnerability */
+static int hf_e1ap_EUTRAN_QoS_Support_List_item = -1; /* EUTRAN_QoS_Support_Item */
+static int hf_e1ap_qCI = -1; /* QCI */
+static int hf_e1ap_eUTRANallocationAndRetentionPriority = -1; /* EUTRANAllocationAndRetentionPriority */
+static int hf_e1ap_gbrQosInformation = -1; /* GBR_QosInformation */
+static int hf_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_item = -1; /* GNB_CU_UP_CellGroupRelatedConfiguration_Item */
+static int hf_e1ap_uP_TNL_Information = -1; /* UP_TNL_Information */
+static int hf_e1ap_e_RAB_MaximumBitrateDL = -1; /* BitRate */
+static int hf_e1ap_e_RAB_MaximumBitrateUL = -1; /* BitRate */
+static int hf_e1ap_e_RAB_GuaranteedBitrateDL = -1; /* BitRate */
+static int hf_e1ap_e_RAB_GuaranteedBitrateUL = -1; /* BitRate */
+static int hf_e1ap_maxFlowBitRateDownlink = -1; /* BitRate */
+static int hf_e1ap_maxFlowBitRateUplink = -1; /* BitRate */
+static int hf_e1ap_guaranteedFlowBitRateDownlink = -1; /* BitRate */
+static int hf_e1ap_guaranteedFlowBitRateUplink = -1; /* BitRate */
+static int hf_e1ap_notificationControl = -1; /* T_notificationControl */
+static int hf_e1ap_maxPacketLossRateDownlink = -1; /* MaxPacketLossRate */
+static int hf_e1ap_maxPacketLossRateUplink = -1; /* MaxPacketLossRate */
+static int hf_e1ap_transportLayerAddress = -1; /* TransportLayerAddress */
+static int hf_e1ap_gTP_TEID = -1; /* GTP_TEID */
+static int hf_e1ap_NG_RAN_QoS_Support_List_item = -1; /* NG_RAN_QoS_Support_Item */
+static int hf_e1ap_non_Dynamic5QIDescriptor = -1; /* Non_Dynamic5QIDescriptor */
+static int hf_e1ap_fiveQI = -1; /* INTEGER_0_255_ */
+static int hf_e1ap_qoSPriorityLevel_01 = -1; /* INTEGER_1_127_ */
+static int hf_e1ap_pLMN_Identity = -1; /* PLMN_Identity */
+static int hf_e1ap_nR_Cell_Identity = -1; /* NR_Cell_Identity */
+static int hf_e1ap_NR_CGI_Support_List_item = -1; /* NR_CGI_Support_Item */
+static int hf_e1ap_nR_CGI = -1; /* NR_CGI */
+static int hf_e1ap_pDCP_SN_Size = -1; /* PDCP_SN_Size */
+static int hf_e1ap_rLC_Mode = -1; /* RLC_Mode */
+static int hf_e1ap_rOHC_Parameters = -1; /* ROHC_Parameters */
+static int hf_e1ap_t_ReorderingTimer = -1; /* T_ReorderingTimer */
+static int hf_e1ap_discardTimer = -1; /* DiscardTimer */
+static int hf_e1ap_uLDataSplitThreshold = -1; /* ULDataSplitThreshold */
+static int hf_e1ap_pDCP_Duplication = -1; /* PDCP_Duplication */
+static int hf_e1ap_pDCP_SN = -1; /* PDCP_SN */
+static int hf_e1ap_hFN = -1; /* HFN */
+static int hf_e1ap_PDU_Session_Resource_Confirm_Modified_List_item = -1; /* PDU_Session_Resource_Confirm_Modified_Item */
+static int hf_e1ap_pDU_Session_ID = -1; /* PDU_Session_ID */
+static int hf_e1ap_dRB_Confirm_Modified_List_NG_RAN = -1; /* DRB_Confirm_Modified_List_NG_RAN */
+static int hf_e1ap_PDU_Session_Resource_Failed_List_item = -1; /* PDU_Session_Resource_Failed_Item */
+static int hf_e1ap_casue = -1; /* Cause */
+static int hf_e1ap_PDU_Session_Resource_Failed_To_Modify_List_item = -1; /* PDU_Session_Resource_Failed_To_Modify_Item */
+static int hf_e1ap_PDU_Session_Resource_Modified_List_item = -1; /* PDU_Session_Resource_Modified_Item */
+static int hf_e1ap_dRB_Setup_List_NG_RAN = -1; /* DRB_Setup_List_NG_RAN */
+static int hf_e1ap_dRB_Failed_List_NG_RAN = -1; /* DRB_Failed_List_NG_RAN */
+static int hf_e1ap_dRB_Modified_List_NG_RAN = -1; /* DRB_Modified_List_NG_RAN */
+static int hf_e1ap_dRB_Failed_To_Modify_List_NG_RAN = -1; /* DRB_Failed_To_Modify_List_NG_RAN */
+static int hf_e1ap_dRB_To_Remove_List_NG_RAN = -1; /* DRB_To_Remove_List_NG_RAN */
+static int hf_e1ap_PDU_Session_Resource_Required_To_Modify_List_item = -1; /* PDU_Session_Resource_Required_To_Modify_Item */
+static int hf_e1ap_nG_DL_UP_TNL_Information = -1; /* UP_TNL_Information */
+static int hf_e1ap_pDU_Session_Data_Forwarding_Information_Response = -1; /* Data_Forwarding_Information_Response */
+static int hf_e1ap_dRB_Required_To_Modify_List_NG_RAN = -1; /* DRB_Required_To_Modify_List_NG_RAN */
+static int hf_e1ap_PDU_Session_Resource_Setup_List_item = -1; /* PDU_Session_Resource_Setup_Item */
+static int hf_e1ap_PDU_Session_Resource_To_Modify_List_item = -1; /* PDU_Session_Resource_To_Modify_Item */
+static int hf_e1ap_pDU_Session_Type = -1; /* PDU_Session_Type */
+static int hf_e1ap_sNSSAI = -1; /* SNSSAI */
+static int hf_e1ap_securityIndication = -1; /* SecurityIndication */
+static int hf_e1ap_pDU_Session_Resource_AMBR = -1; /* BitRate */
+static int hf_e1ap_nG_UL_UP_TNL_Information = -1; /* UP_TNL_Information */
+static int hf_e1ap_pDU_Session_Data_Forwarding_Information_Request = -1; /* Data_Forwarding_Information_Request */
+static int hf_e1ap_dRB_To_Setup_List_NG_RAN = -1; /* DRB_To_Setup_List_NG_RAN */
+static int hf_e1ap_dRB_To_Modify_List_NG_RAN = -1; /* DRB_To_Modify_List_NG_RAN */
+static int hf_e1ap_PDU_Session_Resource_To_Remove_List_item = -1; /* PDU_Session_Resource_To_Remove_Item */
+static int hf_e1ap_PDU_Session_Resource_To_Setup_List_item = -1; /* PDU_Session_Resource_To_Setup_Item */
+static int hf_e1ap_non_Dynamic_5QI = -1; /* Non_Dynamic5QIDescriptor */
+static int hf_e1ap_dynamic_5QI = -1; /* Dynamic5QIDescriptor */
+static int hf_e1ap_QoS_Flow_List_item = -1; /* QoS_Flow_Item */
+static int hf_e1ap_qoS_Flow_Indicator = -1; /* QoS_Flow_Indicator */
+static int hf_e1ap_QoS_Flow_Failed_List_item = -1; /* QoS_Flow_Failed_Item */
+static int hf_e1ap_eUTRAN_QoS_Support_List = -1; /* EUTRAN_QoS_Support_List */
+static int hf_e1ap_nG_RAN_QoS_Support_List = -1; /* NG_RAN_QoS_Support_List */
+static int hf_e1ap_QoS_Flow_QoS_Parameter_List_item = -1; /* QoS_Flow_QoS_Parameter_Item */
+static int hf_e1ap_qoSFlowLevelQoSParameters = -1; /* QoSFlowLevelQoSParameters */
+static int hf_e1ap_qoS_Characteristics = -1; /* QoS_Characteristics */
+static int hf_e1ap_nGRANallocationRetentionPriority = -1; /* NGRANAllocationAndRetentionPriority */
+static int hf_e1ap_gBR_QoS_Flow_Information = -1; /* GBR_QoSFlowInformation */
+static int hf_e1ap_reflective_QoS_Attribute = -1; /* T_reflective_QoS_Attribute */
+static int hf_e1ap_additional_QoS_Information = -1; /* T_additional_QoS_Information */
+static int hf_e1ap_paging_Policy_Indicator = -1; /* INTEGER_1_8_ */
+static int hf_e1ap_reflective_QoS_Indicator = -1; /* T_reflective_QoS_Indicator */
+static int hf_e1ap_rOHC_Profiles = -1; /* ROHC_Profiles */
+static int hf_e1ap_cipheringAlgorithm = -1; /* CipheringAlgorithm */
+static int hf_e1ap_integrityProtectionAlgorithm = -1; /* IntegrityProtectionAlgorithm */
+static int hf_e1ap_integrityProtectionIndication = -1; /* IntegrityProtectionIndication */
+static int hf_e1ap_confidentialityProtectionIndication = -1; /* ConfidentialityProtectionIndication */
+static int hf_e1ap_securityAlgorithm = -1; /* SecurityAlgorithm */
+static int hf_e1ap_uPSecuritykey = -1; /* UPSecuritykey */
+static int hf_e1ap_Slice_Support_List_item = -1; /* Slice_Support_Item */
+static int hf_e1ap_sST = -1; /* OCTET_STRING_SIZE_1 */
+static int hf_e1ap_sD = -1; /* OCTET_STRING_SIZE_3 */
+static int hf_e1ap_defaultDRB = -1; /* DefaultDRB */
+static int hf_e1ap_sDAP_Header_UL = -1; /* SDAP_Header_UL */
+static int hf_e1ap_sDAP_Header_DL = -1; /* SDAP_Header_DL */
+static int hf_e1ap_t_ReorderingUL = -1; /* T_ReorderingUL */
+static int hf_e1ap_t_ReorderingDL = -1; /* T_ReorderingDL */
+static int hf_e1ap_gNB_CU_CP_UE_E1AP_ID = -1; /* GNB_CU_CP_UE_E1AP_ID */
+static int hf_e1ap_gNB_CU_UP_UE_E1AP_ID = -1; /* GNB_CU_UP_UE_E1AP_ID */
+static int hf_e1ap_UP_Parameters_item = -1; /* UP_Parameters_Item */
+static int hf_e1ap_encryptionKey = -1; /* EncryptionKey */
+static int hf_e1ap_integrityProtectionKey = -1; /* IntegrityProtectionKey */
+static int hf_e1ap_gTPTunnel = -1; /* GTPTunnel */
+static int hf_e1ap_protocolIEs = -1; /* ProtocolIE_Container */
+static int hf_e1ap_e1_Interface = -1; /* ResetAll */
+static int hf_e1ap_partOfE1_Interface = -1; /* UE_associatedLogicalE1_ConnectionListRes */
+static int hf_e1ap_UE_associatedLogicalE1_ConnectionListRes_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_e1ap_UE_associatedLogicalE1_ConnectionListResAck_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_e1ap_SupportedPLMNs_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_e1ap_slice_Support_List = -1; /* Slice_Support_List */
+static int hf_e1ap_nR_CGI_Support_List = -1; /* NR_CGI_Support_List */
+static int hf_e1ap_qoS_Parameters_Support_List = -1; /* QoS_Parameters_Support_List */
+static int hf_e1ap_e_UTRAN_BearerContextSetupRequest = -1; /* EUTRAN_BearerContextSetupRequest */
+static int hf_e1ap_nG_RAN_BearerContextSetupRequest = -1; /* NG_RAN_BearerContextSetupRequest */
+static int hf_e1ap_dRB_To_Setup_List_EUTRAN = -1; /* DRB_To_Setup_List_EUTRAN */
+static int hf_e1ap_pDU_Session_Resource_To_Setup_List = -1; /* PDU_Session_Resource_To_Setup_List */
+static int hf_e1ap_e_UTRAN_BearerContextSetupResponse = -1; /* EUTRAN_BearerContextSetupResponse */
+static int hf_e1ap_nG_RAN_BearerContextSetupResponse = -1; /* NG_RAN_BearerContextSetupResponse */
+static int hf_e1ap_dRB_Setup_List_EUTRAN = -1; /* DRB_Setup_List_EUTRAN */
+static int hf_e1ap_dRB_Failed_List_EUTRAN = -1; /* DRB_Failed_List_EUTRAN */
+static int hf_e1ap_pDU_Session_Resource_Setup_List = -1; /* PDU_Session_Resource_Setup_List */
+static int hf_e1ap_pDU_Session_Resource_Failed_List = -1; /* PDU_Session_Resource_Failed_List */
+static int hf_e1ap_e_UTRAN_BearerContextModificationRequest = -1; /* EUTRAN_BearerContextModificationRequest */
+static int hf_e1ap_nG_RAN_BearerContextModificationRequest = -1; /* NG_RAN_BearerContextModificationRequest */
+static int hf_e1ap_dRB_To_Modify_List_EUTRAN = -1; /* DRB_To_Modify_List_EUTRAN */
+static int hf_e1ap_dRB_To_Remove_List_EUTRAN = -1; /* DRB_To_Remove_List_EUTRAN */
+static int hf_e1ap_pDU_Session_Resource_To_Modify_List = -1; /* PDU_Session_Resource_To_Modify_List */
+static int hf_e1ap_pDU_Session_Resource_To_Remove_List = -1; /* PDU_Session_Resource_To_Remove_List */
+static int hf_e1ap_e_UTRAN_BearerContextModificationResponse = -1; /* EUTRAN_BearerContextModificationResponse */
+static int hf_e1ap_nG_RAN_BearerContextModificationResponse = -1; /* NG_RAN_BearerContextModificationResponse */
+static int hf_e1ap_dRB_Modified_List_EUTRAN = -1; /* DRB_Modified_List_EUTRAN */
+static int hf_e1ap_dRB_Failed_To_Modify_List_EUTRAN = -1; /* DRB_Failed_To_Modify_List_EUTRAN */
+static int hf_e1ap_pDU_Session_Resource_Modified_List = -1; /* PDU_Session_Resource_Modified_List */
+static int hf_e1ap_pDU_Session_Resource_Failed_To_Modify_List = -1; /* PDU_Session_Resource_Failed_To_Modify_List */
+static int hf_e1ap_e_UTRAN_BearerContextModificationRequired = -1; /* EUTRAN_BearerContextModificationRequired */
+static int hf_e1ap_nG_RAN_BearerContextModificationRequired = -1; /* NG_RAN_BearerContextModificationRequired */
+static int hf_e1ap_dRB_Required_To_Modify_List_EUTRAN = -1; /* DRB_Required_To_Modify_List_EUTRAN */
+static int hf_e1ap_pDU_Session_Resource_Required_To_Modify_List = -1; /* PDU_Session_Resource_Required_To_Modify_List */
+static int hf_e1ap_e_UTRAN_BearerContextModificationConfirm = -1; /* EUTRAN_BearerContextModificationConfirm */
+static int hf_e1ap_nG_RAN_BearerContextModificationConfirm = -1; /* NG_RAN_BearerContextModificationConfirm */
+static int hf_e1ap_dRB_Confirm_Modified_List_EUTRAN = -1; /* DRB_Confirm_Modified_List_EUTRAN */
+static int hf_e1ap_pDU_Session_Resource_Confirm_Modified_List = -1; /* PDU_Session_Resource_Confirm_Modified_List */
+static int hf_e1ap_DRB_Status_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_e1ap_DRB_Activity_List_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_e1ap_privateIEs = -1; /* PrivateIE_Container */
+static int hf_e1ap_initiatingMessage = -1; /* InitiatingMessage */
+static int hf_e1ap_successfulOutcome = -1; /* SuccessfulOutcome */
+static int hf_e1ap_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */
+static int hf_e1ap_initiatingMessagevalue = -1; /* InitiatingMessage_value */
+static int hf_e1ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
+static int hf_e1ap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */
+
+/*--- End of included file: packet-e1ap-hf.c ---*/
+#line 44 "./asn1/e1ap/packet-e1ap-template.c"
+
+/* Initialize the subtree pointers */
+static gint ett_e1ap = -1;
+static gint ett_e1ap_PLMN_Identity = -1;
+static gint ett_e1ap_TransportLayerAddress = -1;
+
+/*--- Included file: packet-e1ap-ett.c ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-ett.c"
+static gint ett_e1ap_PrivateIE_ID = -1;
+static gint ett_e1ap_ProtocolIE_Container = -1;
+static gint ett_e1ap_ProtocolIE_Field = -1;
+static gint ett_e1ap_ProtocolExtensionContainer = -1;
+static gint ett_e1ap_ProtocolExtensionField = -1;
+static gint ett_e1ap_PrivateIE_Container = -1;
+static gint ett_e1ap_PrivateIE_Field = -1;
+static gint ett_e1ap_Cause = -1;
+static gint ett_e1ap_Cell_Group_Information = -1;
+static gint ett_e1ap_Cell_Group_Information_Item = -1;
+static gint ett_e1ap_CriticalityDiagnostics = -1;
+static gint ett_e1ap_CriticalityDiagnostics_IE_List = -1;
+static gint ett_e1ap_CriticalityDiagnostics_IE_List_item = -1;
+static gint ett_e1ap_Data_Forwarding_Information_Request = -1;
+static gint ett_e1ap_Data_Forwarding_Information_Response = -1;
+static gint ett_e1ap_Data_Usage_Report_List = -1;
+static gint ett_e1ap_Data_Usage_Report_Item = -1;
+static gint ett_e1ap_DRB_Activity_Item = -1;
+static gint ett_e1ap_DRB_Confirm_Modified_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_Confirm_Modified_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_Confirm_Modified_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_Confirm_Modified_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Failed_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_Failed_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_Failed_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_Failed_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Failed_To_Modify_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_Failed_To_Modify_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_Failed_To_Modify_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_Failed_To_Modify_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Modified_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_Modified_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_Modified_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_Modified_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Required_To_Modify_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_Required_To_Modify_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_Required_To_Modify_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_Required_To_Modify_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Setup_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_Setup_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_Setup_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_Setup_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Status_Item = -1;
+static gint ett_e1ap_DRB_To_Modify_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_To_Modify_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_To_Modify_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_To_Modify_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_To_Remove_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_To_Remove_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_To_Remove_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_To_Remove_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_To_Setup_List_EUTRAN = -1;
+static gint ett_e1ap_DRB_To_Setup_Item_EUTRAN = -1;
+static gint ett_e1ap_DRB_To_Setup_List_NG_RAN = -1;
+static gint ett_e1ap_DRB_To_Setup_Item_NG_RAN = -1;
+static gint ett_e1ap_DRB_Usage_Report_List = -1;
+static gint ett_e1ap_DRB_Usage_Report_Item = -1;
+static gint ett_e1ap_Dynamic5QIDescriptor = -1;
+static gint ett_e1ap_EUTRANAllocationAndRetentionPriority = -1;
+static gint ett_e1ap_EUTRAN_QoS_Support_List = -1;
+static gint ett_e1ap_EUTRAN_QoS_Support_Item = -1;
+static gint ett_e1ap_EUTRAN_QoS = -1;
+static gint ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration = -1;
+static gint ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_Item = -1;
+static gint ett_e1ap_GBR_QosInformation = -1;
+static gint ett_e1ap_GBR_QoSFlowInformation = -1;
+static gint ett_e1ap_GTPTunnel = -1;
+static gint ett_e1ap_NGRANAllocationAndRetentionPriority = -1;
+static gint ett_e1ap_NG_RAN_QoS_Support_List = -1;
+static gint ett_e1ap_NG_RAN_QoS_Support_Item = -1;
+static gint ett_e1ap_Non_Dynamic5QIDescriptor = -1;
+static gint ett_e1ap_NR_CGI = -1;
+static gint ett_e1ap_NR_CGI_Support_List = -1;
+static gint ett_e1ap_NR_CGI_Support_Item = -1;
+static gint ett_e1ap_PDCP_Configuration = -1;
+static gint ett_e1ap_PDCP_Count = -1;
+static gint ett_e1ap_PDU_Session_Resource_Confirm_Modified_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_Confirm_Modified_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_Failed_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_Failed_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_Failed_To_Modify_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_Failed_To_Modify_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_Modified_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_Modified_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_Required_To_Modify_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_Required_To_Modify_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_Setup_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_Setup_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_To_Modify_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_To_Modify_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_To_Remove_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_To_Remove_Item = -1;
+static gint ett_e1ap_PDU_Session_Resource_To_Setup_List = -1;
+static gint ett_e1ap_PDU_Session_Resource_To_Setup_Item = -1;
+static gint ett_e1ap_QoS_Characteristics = -1;
+static gint ett_e1ap_QoS_Flow_List = -1;
+static gint ett_e1ap_QoS_Flow_Item = -1;
+static gint ett_e1ap_QoS_Flow_Failed_List = -1;
+static gint ett_e1ap_QoS_Flow_Failed_Item = -1;
+static gint ett_e1ap_QoS_Parameters_Support_List = -1;
+static gint ett_e1ap_QoS_Flow_QoS_Parameter_List = -1;
+static gint ett_e1ap_QoS_Flow_QoS_Parameter_Item = -1;
+static gint ett_e1ap_QoSFlowLevelQoSParameters = -1;
+static gint ett_e1ap_ROHC_Parameters = -1;
+static gint ett_e1ap_SecurityAlgorithm = -1;
+static gint ett_e1ap_SecurityIndication = -1;
+static gint ett_e1ap_SecurityInformation = -1;
+static gint ett_e1ap_Slice_Support_List = -1;
+static gint ett_e1ap_Slice_Support_Item = -1;
+static gint ett_e1ap_SNSSAI = -1;
+static gint ett_e1ap_SDAP_Configuration = -1;
+static gint ett_e1ap_T_ReorderingTimer = -1;
+static gint ett_e1ap_UE_associatedLogicalE1_ConnectionItem = -1;
+static gint ett_e1ap_UP_Parameters = -1;
+static gint ett_e1ap_UP_Parameters_Item = -1;
+static gint ett_e1ap_UPSecuritykey = -1;
+static gint ett_e1ap_UP_TNL_Information = -1;
+static gint ett_e1ap_Reset = -1;
+static gint ett_e1ap_ResetType = -1;
+static gint ett_e1ap_UE_associatedLogicalE1_ConnectionListRes = -1;
+static gint ett_e1ap_ResetAcknowledge = -1;
+static gint ett_e1ap_UE_associatedLogicalE1_ConnectionListResAck = -1;
+static gint ett_e1ap_ErrorIndication = -1;
+static gint ett_e1ap_GNB_CU_UP_E1SetupRequest = -1;
+static gint ett_e1ap_SupportedPLMNs_List = -1;
+static gint ett_e1ap_SupportedPLMNs_Item = -1;
+static gint ett_e1ap_GNB_CU_UP_E1SetupResponse = -1;
+static gint ett_e1ap_GNB_CU_UP_E1SetupFailure = -1;
+static gint ett_e1ap_GNB_CU_CP_E1SetupRequest = -1;
+static gint ett_e1ap_GNB_CU_CP_E1SetupResponse = -1;
+static gint ett_e1ap_GNB_CU_CP_E1SetupFailure = -1;
+static gint ett_e1ap_GNB_CU_UP_ConfigurationUpdate = -1;
+static gint ett_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge = -1;
+static gint ett_e1ap_GNB_CU_UP_ConfigurationUpdateFailure = -1;
+static gint ett_e1ap_GNB_CU_CP_ConfigurationUpdate = -1;
+static gint ett_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge = -1;
+static gint ett_e1ap_GNB_CU_CP_ConfigurationUpdateFailure = -1;
+static gint ett_e1ap_E1ReleaseRequest = -1;
+static gint ett_e1ap_E1ReleaseResponse = -1;
+static gint ett_e1ap_BearerContextSetupRequest = -1;
+static gint ett_e1ap_System_BearerContextSetupRequest = -1;
+static gint ett_e1ap_EUTRAN_BearerContextSetupRequest = -1;
+static gint ett_e1ap_NG_RAN_BearerContextSetupRequest = -1;
+static gint ett_e1ap_BearerContextSetupResponse = -1;
+static gint ett_e1ap_System_BearerContextSetupResponse = -1;
+static gint ett_e1ap_EUTRAN_BearerContextSetupResponse = -1;
+static gint ett_e1ap_NG_RAN_BearerContextSetupResponse = -1;
+static gint ett_e1ap_BearerContextSetupFailure = -1;
+static gint ett_e1ap_BearerContextModificationRequest = -1;
+static gint ett_e1ap_System_BearerContextModificationRequest = -1;
+static gint ett_e1ap_EUTRAN_BearerContextModificationRequest = -1;
+static gint ett_e1ap_NG_RAN_BearerContextModificationRequest = -1;
+static gint ett_e1ap_BearerContextModificationResponse = -1;
+static gint ett_e1ap_System_BearerContextModificationResponse = -1;
+static gint ett_e1ap_EUTRAN_BearerContextModificationResponse = -1;
+static gint ett_e1ap_NG_RAN_BearerContextModificationResponse = -1;
+static gint ett_e1ap_BearerContextModificationFailure = -1;
+static gint ett_e1ap_BearerContextModificationRequired = -1;
+static gint ett_e1ap_System_BearerContextModificationRequired = -1;
+static gint ett_e1ap_EUTRAN_BearerContextModificationRequired = -1;
+static gint ett_e1ap_NG_RAN_BearerContextModificationRequired = -1;
+static gint ett_e1ap_BearerContextModificationConfirm = -1;
+static gint ett_e1ap_System_BearerContextModificationConfirm = -1;
+static gint ett_e1ap_EUTRAN_BearerContextModificationConfirm = -1;
+static gint ett_e1ap_NG_RAN_BearerContextModificationConfirm = -1;
+static gint ett_e1ap_BearerContextReleaseCommand = -1;
+static gint ett_e1ap_BearerContextReleaseComplete = -1;
+static gint ett_e1ap_BearerContextReleaseRequest = -1;
+static gint ett_e1ap_DRB_Status_List = -1;
+static gint ett_e1ap_BearerContextInactivityNotification = -1;
+static gint ett_e1ap_DRB_Activity_List = -1;
+static gint ett_e1ap_DLDataNotification = -1;
+static gint ett_e1ap_DataUsageReport = -1;
+static gint ett_e1ap_PrivateMessage = -1;
+static gint ett_e1ap_E1AP_PDU = -1;
+static gint ett_e1ap_InitiatingMessage = -1;
+static gint ett_e1ap_SuccessfulOutcome = -1;
+static gint ett_e1ap_UnsuccessfulOutcome = -1;
+
+/*--- End of included file: packet-e1ap-ett.c ---*/
+#line 50 "./asn1/e1ap/packet-e1ap-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;
+} e1ap_private_data_t;
+
+typedef struct {
+ guint32 message_type;
+ guint32 ProcedureCode;
+ guint32 ProtocolIE_ID;
+ guint32 ProtocolExtensionID;
+} e1ap_ctx_t;
+
+/* Global variables */
+static dissector_handle_t e1ap_handle;
+
+/* Dissector tables */
+static dissector_table_t e1ap_ies_dissector_table;
+static dissector_table_t e1ap_extension_dissector_table;
+static dissector_table_t e1ap_proc_imsg_dissector_table;
+static dissector_table_t e1ap_proc_sout_dissector_table;
+static dissector_table_t e1ap_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 void
+e1ap_MaxPacketLossRate_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v);
+}
+
+static e1ap_private_data_t*
+e1ap_get_private_data(packet_info *pinfo)
+{
+ e1ap_private_data_t *e1ap_data = (e1ap_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_e1ap, 0);
+ if (!e1ap_data) {
+ e1ap_data = wmem_new0(pinfo->pool, e1ap_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_e1ap, 0, e1ap_data);
+ }
+ return e1ap_data;
+}
+
+
+/*--- Included file: packet-e1ap-fn.c ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-fn.c"
+
+static const value_string e1ap_Criticality_vals[] = {
+ { 0, "reject" },
+ { 1, "ignore" },
+ { 2, "notify" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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_e1ap_INTEGER_0_maxPrivateIEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, maxPrivateIEs, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_T_global(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 107 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &e1ap_data->obj_id);
+
+
+
+
+ return offset;
+}
+
+
+static const value_string e1ap_PrivateIE_ID_vals[] = {
+ { 0, "local" },
+ { 1, "global" },
+ { 0, NULL }
+};
+
+static const per_choice_t PrivateIE_ID_choice[] = {
+ { 0, &hf_e1ap_local , ASN1_NO_EXTENSIONS , dissect_e1ap_INTEGER_0_maxPrivateIEs },
+ { 1, &hf_e1ap_global , ASN1_NO_EXTENSIONS , dissect_e1ap_T_global },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 103 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_data->obj_id = NULL;
+
+
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_PrivateIE_ID, PrivateIE_ID_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_ProcedureCode_vals[] = {
+ { id_reset, "id-reset" },
+ { id_errorIndication, "id-errorIndication" },
+ { id_privateMessage, "id-privateMessage" },
+ { id_gNB_CU_UP_E1Setup, "id-gNB-CU-UP-E1Setup" },
+ { id_gNB_CU_CP_E1Setup, "id-gNB-CU-CP-E1Setup" },
+ { id_gNB_CU_UP_ConfigurationUpdate, "id-gNB-CU-UP-ConfigurationUpdate" },
+ { id_gNB_CU_CP_ConfigurationUpdate, "id-gNB-CU-CP-ConfigurationUpdate" },
+ { id_e1Release, "id-e1Release" },
+ { id_bearerContextSetup, "id-bearerContextSetup" },
+ { id_bearerContextModification, "id-bearerContextModification" },
+ { id_bearerContextModificationRequired, "id-bearerContextModificationRequired" },
+ { id_bearerContextRelease, "id-bearerContextRelease" },
+ { id_bearerContextReleaseRequest, "id-bearerContextReleaseRequest" },
+ { id_bearerContextInactivityNotification, "id-bearerContextInactivityNotification" },
+ { id_dLDataNotification, "id-dLDataNotification" },
+ { id_dataUsageReport, "id-dataUsageReport" },
+ { 0, NULL }
+};
+
+static value_string_ext e1ap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(e1ap_ProcedureCode_vals);
+
+
+static int
+dissect_e1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 84 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 255U, &e1ap_data->procedure_code, FALSE);
+
+
+
+ return offset;
+}
+
+
+static const value_string e1ap_ProtocolIE_ID_vals[] = {
+ { id_Cause, "id-Cause" },
+ { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" },
+ { id_gNB_CU_CP_UE_E1AP_ID, "id-gNB-CU-CP-UE-E1AP-ID" },
+ { id_gNB_CU_UP_UE_E1AP_ID, "id-gNB-CU-UP-UE-E1AP-ID" },
+ { id_ResetType, "id-ResetType" },
+ { id_UE_associatedLogicalE1_ConnectionItem, "id-UE-associatedLogicalE1-ConnectionItem" },
+ { id_UE_associatedLogicalE1_ConnectionListResAck, "id-UE-associatedLogicalE1-ConnectionListResAck" },
+ { id_gNB_CU_UP_ID, "id-gNB-CU-UP-ID" },
+ { id_gNB_CU_UP_Name, "id-gNB-CU-UP-Name" },
+ { id_gNB_CU_CP_Name, "id-gNB-CU-CP-Name" },
+ { id_CNSupport, "id-CNSupport" },
+ { id_SupportedPLMNs, "id-SupportedPLMNs" },
+ { id_SupportedPLMNs_Item, "id-SupportedPLMNs-Item" },
+ { id_TimeToWait, "id-TimeToWait" },
+ { id_SecurityInformation, "id-SecurityInformation" },
+ { id_UEDLAggregateMaximumBitRate, "id-UEDLAggregateMaximumBitRate" },
+ { id_System_BearerContextSetupRequest, "id-System-BearerContextSetupRequest" },
+ { id_System_BearerContextSetupResponse, "id-System-BearerContextSetupResponse" },
+ { id_BearerContextStatusChange, "id-BearerContextStatusChange" },
+ { id_System_BearerContextModificationRequest, "id-System-BearerContextModificationRequest" },
+ { id_System_BearerContextModificationResponse, "id-System-BearerContextModificationResponse" },
+ { id_System_BearerContextModificationConfirm, "id-System-BearerContextModificationConfirm" },
+ { id_System_BearerContextModificationRequired, "id-System-BearerContextModificationRequired" },
+ { id_DRB_Status_List, "id-DRB-Status-List" },
+ { id_DRB_Status_Item, "id-DRB-Status-Item" },
+ { id_DRB_Activity_List, "id-DRB-Activity-List" },
+ { id_DRB_Activity_Item, "id-DRB-Activity-Item" },
+ { id_Data_Usage_Report_List, "id-Data-Usage-Report-List" },
+ { 0, NULL }
+};
+
+static value_string_ext e1ap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(e1ap_ProtocolIE_ID_vals);
+
+
+static int
+dissect_e1ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 66 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, maxProtocolIEs, &e1ap_data->protocol_ie_id, FALSE);
+
+
+
+
+#line 70 "./asn1/e1ap/e1ap.cnf"
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
+ val_to_str_ext(e1ap_data->protocol_ie_id, &e1ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+
+
+ return offset;
+}
+
+
+static const value_string e1ap_TriggeringMessage_vals[] = {
+ { 0, "initiating-message" },
+ { 1, "successful-outcome" },
+ { 2, "unsuccessful-outcome" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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_e1ap_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_e1ap_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_ID },
+ { &hf_e1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_ie_field_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_T_ie_field_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_ProtocolIE_Field, ProtocolIE_Field_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
+ { &hf_e1ap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Field },
+};
+
+static int
+dissect_e1ap_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_e1ap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
+ 0, maxProtocolIEs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_ProtocolIE_SingleContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_e1ap_ProtocolIE_Field(tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_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(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolExtensionField_sequence[] = {
+ { &hf_e1ap_ext_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_ID },
+ { &hf_e1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_extensionValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_T_extensionValue },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_ProtocolExtensionField, ProtocolExtensionField_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
+ { &hf_e1ap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolExtensionField },
+};
+
+static int
+dissect_e1ap_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_e1ap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
+ 1, maxProtocolExtensions, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 111 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ if (e1ap_data->obj_id) {
+ offset = call_per_oid_callback(e1ap_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_e1ap_private_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PrivateIE_ID },
+ { &hf_e1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_T_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_PrivateIE_Field, PrivateIE_Field_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
+ { &hf_e1ap_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PrivateIE_Field },
+};
+
+static int
+dissect_e1ap_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_e1ap_PrivateIE_Container, PrivateIE_Container_sequence_of,
+ 1, maxPrivateIEs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_AveragingWindow(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_BearerContextStatusChange_vals[] = {
+ { 0, "suspend" },
+ { 1, "resume" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_BearerContextStatusChange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
+ 0U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_CauseRadioNetwork_vals[] = {
+ { 0, "unspecified" },
+ { 1, "unknown-or-already-allocated-gnb-cu-cp-ue-e1ap-id" },
+ { 2, "unknown-or-already-allocated-gnb-cu-up-ue-e1ap-id" },
+ { 3, "unknown-or-inconsistent-pair-of-ue-e1ap-id" },
+ { 4, "interaction-with-other-procedure" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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,
+ 5, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_CauseTransport_vals[] = {
+ { 0, "unspecified" },
+ { 1, "transport-resource-unavailable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_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_e1ap_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 e1ap_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_e1ap_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 e1ap_Cause_vals[] = {
+ { 0, "radioNetwork" },
+ { 1, "transport" },
+ { 2, "protocol" },
+ { 3, "misc" },
+ { 0, NULL }
+};
+
+static const per_choice_t Cause_choice[] = {
+ { 0, &hf_e1ap_radioNetwork , ASN1_EXTENSION_ROOT , dissect_e1ap_CauseRadioNetwork },
+ { 1, &hf_e1ap_transport , ASN1_EXTENSION_ROOT , dissect_e1ap_CauseTransport },
+ { 2, &hf_e1ap_protocol , ASN1_EXTENSION_ROOT , dissect_e1ap_CauseProtocol },
+ { 3, &hf_e1ap_misc , ASN1_EXTENSION_ROOT , dissect_e1ap_CauseMisc },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_Cause, Cause_choice,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_Cell_Gorup_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, 3U, NULL, TRUE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_UL_Configuration_vals[] = {
+ { 0, "no-data" },
+ { 1, "shared" },
+ { 2, "only" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_UL_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_DL_TX_Stop_vals[] = {
+ { 0, "stop" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_DL_TX_Stop(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 e1ap_RAT_Type_vals[] = {
+ { 0, "e-UTRA" },
+ { 1, "nR" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_RAT_Type(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 Cell_Group_Information_Item_sequence[] = {
+ { &hf_e1ap_cell_Group_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cell_Gorup_ID },
+ { &hf_e1ap_uL_Configuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UL_Configuration },
+ { &hf_e1ap_dL_TX_Stop , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DL_TX_Stop },
+ { &hf_e1ap_rAT_Type , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_RAT_Type },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Cell_Group_Information_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_e1ap_Cell_Group_Information_Item, Cell_Group_Information_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Cell_Group_Information_sequence_of[1] = {
+ { &hf_e1ap_Cell_Group_Information_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Cell_Group_Information_Item },
+};
+
+static int
+dissect_e1ap_Cell_Group_Information(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_e1ap_Cell_Group_Information, Cell_Group_Information_sequence_of,
+ 1, maxnoofCellGroups, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_CipheringAlgorithm_vals[] = {
+ { 0, "nEA0" },
+ { 1, "c-128-NEA1" },
+ { 2, "c-128-NEA2" },
+ { 3, "c-128-NEA3" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_CipheringAlgorithm(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,
+ 4, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_CNSupport_vals[] = {
+ { 0, "c-epc" },
+ { 1, "c-5gc" },
+ { 2, "both" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_CNSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_ConfidentialityProtectionIndication_vals[] = {
+ { 0, "required" },
+ { 1, "preferred" },
+ { 2, "not-needed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_ConfidentialityProtectionIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_TypeOfError_vals[] = {
+ { 0, "not-understood" },
+ { 1, "missing" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
+ { &hf_e1ap_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_ID },
+ { &hf_e1ap_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_TypeOfError },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
+ { &hf_e1ap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_CriticalityDiagnostics_IE_List_item },
+};
+
+static int
+dissect_e1ap_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_e1ap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
+ 1, maxnoofErrors, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_sequence[] = {
+ { &hf_e1ap_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProcedureCode },
+ { &hf_e1ap_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_TriggeringMessage },
+ { &hf_e1ap_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Criticality },
+ { &hf_e1ap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_CriticalityDiagnostics_IE_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_Data_Forwarding_Request_vals[] = {
+ { 0, "uL" },
+ { 1, "dL" },
+ { 2, "both" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_Data_Forwarding_Request(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 290 "./asn1/e1ap/e1ap.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_e1ap_TransportLayerAddress);
+ if (tvb_len == 4) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ } else if (tvb_len == 16) {
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv6, param_tvb, 0, 16, ENC_NA);
+ } else if (tvb_len == 20) {
+ /* IPv4 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv4, param_tvb, 0, 4, ENC_BIG_ENDIAN);
+ /* IPv6 */
+ proto_tree_add_item(subtree, hf_e1ap_transportLayerAddressIPv6, param_tvb, 4, 16, ENC_NA);
+ }
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_GTP_TEID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GTPTunnel_sequence[] = {
+ { &hf_e1ap_transportLayerAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_TransportLayerAddress },
+ { &hf_e1ap_gTP_TEID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_GTP_TEID },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GTPTunnel(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_e1ap_GTPTunnel, GTPTunnel_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_UP_TNL_Information_vals[] = {
+ { 0, "gTPTunnel" },
+ { 0, NULL }
+};
+
+static const per_choice_t UP_TNL_Information_choice[] = {
+ { 0, &hf_e1ap_gTPTunnel , ASN1_EXTENSION_ROOT , dissect_e1ap_GTPTunnel },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_UP_TNL_Information(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_e1ap_UP_TNL_Information, UP_TNL_Information_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Data_Forwarding_Information_Request_sequence[] = {
+ { &hf_e1ap_data_Forwarding_Request, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Data_Forwarding_Request },
+ { &hf_e1ap_uL_Data_Forwarding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_dL_Data_Forwarding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Data_Forwarding_Information_Request(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_e1ap_Data_Forwarding_Information_Request, Data_Forwarding_Information_Request_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Data_Forwarding_Information_Response_sequence[] = {
+ { &hf_e1ap_uL_Data_Forwarding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_dL_Data_Forwarding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Data_Forwarding_Information_Response(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_e1ap_Data_Forwarding_Information_Response, Data_Forwarding_Information_Response_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_DRB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 32U, NULL, TRUE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 263 "./asn1/e1ap/e1ap.cnf"
+ tvbuff_t *timestamp_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, &timestamp_tvb);
+
+
+
+
+#line 267 "./asn1/e1ap/e1ap.cnf"
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 272 "./asn1/e1ap/e1ap.cnf"
+ tvbuff_t *timestamp_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, &timestamp_tvb);
+
+
+
+
+#line 276 "./asn1/e1ap/e1ap.cnf"
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_INTEGER_0_18446744073709551615(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(18446744073709551615), NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Usage_Report_Item_sequence[] = {
+ { &hf_e1ap_startTimeStamp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_T_startTimeStamp },
+ { &hf_e1ap_endTimeStamp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_T_endTimeStamp },
+ { &hf_e1ap_usageCountUL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_INTEGER_0_18446744073709551615 },
+ { &hf_e1ap_usageCountDL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_INTEGER_0_18446744073709551615 },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Usage_Report_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_e1ap_DRB_Usage_Report_Item, DRB_Usage_Report_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Usage_Report_List_sequence_of[1] = {
+ { &hf_e1ap_DRB_Usage_Report_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Usage_Report_Item },
+};
+
+static int
+dissect_e1ap_DRB_Usage_Report_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_e1ap_DRB_Usage_Report_List, DRB_Usage_Report_List_sequence_of,
+ 1, maxnooftimeperiods, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Data_Usage_Report_Item_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_rAT_Type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_RAT_Type },
+ { &hf_e1ap_dRB_Usage_Report_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Usage_Report_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Data_Usage_Report_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_e1ap_Data_Usage_Report_Item, Data_Usage_Report_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Data_Usage_Report_List_sequence_of[1] = {
+ { &hf_e1ap_Data_Usage_Report_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Data_Usage_Report_Item },
+};
+
+static int
+dissect_e1ap_Data_Usage_Report_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_e1ap_Data_Usage_Report_List, Data_Usage_Report_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_DefaultDRB_vals[] = {
+ { 0, "true" },
+ { 1, "false" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_DefaultDRB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_DiscardTimer_vals[] = {
+ { 0, "ms10" },
+ { 1, "ms20" },
+ { 2, "ms30" },
+ { 3, "ms40" },
+ { 4, "ms50" },
+ { 5, "ms75" },
+ { 6, "ms100" },
+ { 7, "ms150" },
+ { 8, "ms200" },
+ { 9, "ms250" },
+ { 10, "ms300" },
+ { 11, "ms500" },
+ { 12, "ms750" },
+ { 13, "ms1500" },
+ { 14, "infinity" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_DiscardTimer(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,
+ 15, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_DRB_Acivity_vals[] = {
+ { 0, "active" },
+ { 1, "not-active" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_DRB_Acivity(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 DRB_Activity_Item_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_dRB_Activity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Acivity },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Activity_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_e1ap_DRB_Activity_Item, DRB_Activity_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Confirm_Modified_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_cell_Group_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Confirm_Modified_Item_EUTRAN(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_e1ap_DRB_Confirm_Modified_Item_EUTRAN, DRB_Confirm_Modified_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Confirm_Modified_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Confirm_Modified_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Confirm_Modified_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_Confirm_Modified_List_EUTRAN(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_e1ap_DRB_Confirm_Modified_List_EUTRAN, DRB_Confirm_Modified_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Confirm_Modified_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_cell_Group_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Confirm_Modified_Item_NG_RAN(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_e1ap_DRB_Confirm_Modified_Item_NG_RAN, DRB_Confirm_Modified_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Confirm_Modified_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Confirm_Modified_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Confirm_Modified_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_Confirm_Modified_List_NG_RAN(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_e1ap_DRB_Confirm_Modified_List_NG_RAN, DRB_Confirm_Modified_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Failed_Item_EUTRAN(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_e1ap_DRB_Failed_Item_EUTRAN, DRB_Failed_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Failed_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Failed_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_Failed_List_EUTRAN(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_e1ap_DRB_Failed_List_EUTRAN, DRB_Failed_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Failed_Item_NG_RAN(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_e1ap_DRB_Failed_Item_NG_RAN, DRB_Failed_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Failed_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Failed_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_Failed_List_NG_RAN(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_e1ap_DRB_Failed_List_NG_RAN, DRB_Failed_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_To_Modify_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Failed_To_Modify_Item_EUTRAN(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_e1ap_DRB_Failed_To_Modify_Item_EUTRAN, DRB_Failed_To_Modify_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_To_Modify_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Failed_To_Modify_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Failed_To_Modify_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_Failed_To_Modify_List_EUTRAN(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_e1ap_DRB_Failed_To_Modify_List_EUTRAN, DRB_Failed_To_Modify_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_To_Modify_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Failed_To_Modify_Item_NG_RAN(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_e1ap_DRB_Failed_To_Modify_Item_NG_RAN, DRB_Failed_To_Modify_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Failed_To_Modify_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Failed_To_Modify_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Failed_To_Modify_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_Failed_To_Modify_List_NG_RAN(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_e1ap_DRB_Failed_To_Modify_List_NG_RAN, DRB_Failed_To_Modify_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_PDCP_SN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 262143U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_HFN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 4294967295U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDCP_Count_sequence[] = {
+ { &hf_e1ap_pDCP_SN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDCP_SN },
+ { &hf_e1ap_hFN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_HFN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDCP_Count(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_e1ap_PDCP_Count, PDCP_Count_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UP_Parameters_Item_sequence[] = {
+ { &hf_e1ap_uP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_cell_Group_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cell_Gorup_ID },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_UP_Parameters_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_e1ap_UP_Parameters_Item, UP_Parameters_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UP_Parameters_sequence_of[1] = {
+ { &hf_e1ap_UP_Parameters_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_Parameters_Item },
+};
+
+static int
+dissect_e1ap_UP_Parameters(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_e1ap_UP_Parameters, UP_Parameters_sequence_of,
+ 1, maxnoofUPParameters, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Modified_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_pDCP_UL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_pDCP_DL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_uL_UP_Transport_Parameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_Parameters },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Modified_Item_EUTRAN(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_e1ap_DRB_Modified_Item_EUTRAN, DRB_Modified_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Modified_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Modified_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Modified_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_Modified_List_EUTRAN(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_e1ap_DRB_Modified_List_EUTRAN, DRB_Modified_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_QoS_Flow_Indicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Flow_Item_sequence[] = {
+ { &hf_e1ap_qoS_Flow_Indicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_Indicator },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_QoS_Flow_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_e1ap_QoS_Flow_Item, QoS_Flow_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Flow_List_sequence_of[1] = {
+ { &hf_e1ap_QoS_Flow_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_Item },
+};
+
+static int
+dissect_e1ap_QoS_Flow_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_e1ap_QoS_Flow_List, QoS_Flow_List_sequence_of,
+ 1, maxnoofQoSFlows, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Flow_Failed_Item_sequence[] = {
+ { &hf_e1ap_qoS_Flow_Indicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_Indicator },
+ { &hf_e1ap_casue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_QoS_Flow_Failed_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_e1ap_QoS_Flow_Failed_Item, QoS_Flow_Failed_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Flow_Failed_List_sequence_of[1] = {
+ { &hf_e1ap_QoS_Flow_Failed_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_Failed_Item },
+};
+
+static int
+dissect_e1ap_QoS_Flow_Failed_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_e1ap_QoS_Flow_Failed_List, QoS_Flow_Failed_List_sequence_of,
+ 1, maxnoofQoSFlows, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Modified_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_pDCP_UL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_pDCP_DL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_uL_UP_Transport_Parameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_Parameters },
+ { &hf_e1ap_flow_Setup_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_QoS_Flow_List },
+ { &hf_e1ap_flow_Failed_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_QoS_Flow_Failed_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Modified_Item_NG_RAN(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_e1ap_DRB_Modified_Item_NG_RAN, DRB_Modified_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Modified_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Modified_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Modified_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_Modified_List_NG_RAN(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_e1ap_DRB_Modified_List_NG_RAN, DRB_Modified_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_CellGroupRelatedConfiguration_Item_sequence[] = {
+ { &hf_e1ap_cell_Group_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Cell_Gorup_ID },
+ { &hf_e1ap_uP_TNL_Information, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_uL_Configuration, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_UL_Configuration },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_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_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_Item, GNB_CU_UP_CellGroupRelatedConfiguration_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_CellGroupRelatedConfiguration_sequence_of[1] = {
+ { &hf_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_Item },
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration(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_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration, GNB_CU_UP_CellGroupRelatedConfiguration_sequence_of,
+ 1, maxnoofUPParameters, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Required_To_Modify_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_s1_DL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_gNB_CU_UP_CellGroupRelatedConfiguration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Required_To_Modify_Item_EUTRAN(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_e1ap_DRB_Required_To_Modify_Item_EUTRAN, DRB_Required_To_Modify_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Required_To_Modify_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Required_To_Modify_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Required_To_Modify_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_Required_To_Modify_List_EUTRAN(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_e1ap_DRB_Required_To_Modify_List_EUTRAN, DRB_Required_To_Modify_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Required_To_Modify_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_gNB_CU_UP_CellGroupRelatedConfiguration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration },
+ { &hf_e1ap_flow_To_Remove , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_QoS_Flow_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Required_To_Modify_Item_NG_RAN(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_e1ap_DRB_Required_To_Modify_Item_NG_RAN, DRB_Required_To_Modify_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Required_To_Modify_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Required_To_Modify_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Required_To_Modify_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_Required_To_Modify_List_NG_RAN(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_e1ap_DRB_Required_To_Modify_List_NG_RAN, DRB_Required_To_Modify_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Setup_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_s1_DL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_uL_UP_Transport_Parameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_Parameters },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Setup_Item_EUTRAN(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_e1ap_DRB_Setup_Item_EUTRAN, DRB_Setup_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Setup_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Setup_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Setup_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_Setup_List_EUTRAN(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_e1ap_DRB_Setup_List_EUTRAN, DRB_Setup_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Setup_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_dRB_data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_uL_UP_Transport_Parameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_Parameters },
+ { &hf_e1ap_flow_Setup_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_List },
+ { &hf_e1ap_flow_Failed_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_QoS_Flow_Failed_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Setup_Item_NG_RAN(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_e1ap_DRB_Setup_Item_NG_RAN, DRB_Setup_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Setup_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_Setup_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Setup_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_Setup_List_NG_RAN(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_e1ap_DRB_Setup_List_NG_RAN, DRB_Setup_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Status_Item_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_pDCP_DL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_pDCP_UL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_Status_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_e1ap_DRB_Status_Item, DRB_Status_Item_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_PDCP_SN_Size_vals[] = {
+ { 0, "s-12" },
+ { 1, "s-18" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_PDCP_SN_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_RLC_Mode_vals[] = {
+ { 0, "tM" },
+ { 1, "uM" },
+ { 2, "aM" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_RLC_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_ROHC_Profiles(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, 511U, NULL, TRUE);
+
+ return offset;
+}
+
+
+static const per_sequence_t ROHC_Parameters_sequence[] = {
+ { &hf_e1ap_rOHC_Profiles , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ROHC_Profiles },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_ROHC_Parameters(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_e1ap_ROHC_Parameters, ROHC_Parameters_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_T_ReorderingUL_vals[] = {
+ { 0, "ms0" },
+ { 1, "ms5" },
+ { 2, "ms10" },
+ { 3, "ms15" },
+ { 4, "ms20" },
+ { 5, "ms25" },
+ { 6, "ms30" },
+ { 7, "ms35" },
+ { 8, "ms40" },
+ { 9, "ms45" },
+ { 10, "ms50" },
+ { 11, "ms55" },
+ { 12, "ms60" },
+ { 13, "ms65" },
+ { 14, "ms70" },
+ { 15, "ms75" },
+ { 16, "ms80" },
+ { 17, "ms85" },
+ { 18, "ms90" },
+ { 19, "ms95" },
+ { 20, "ms100" },
+ { 21, "ms110" },
+ { 22, "ms120" },
+ { 23, "ms130" },
+ { 24, "ms140" },
+ { 25, "ms150" },
+ { 26, "ms160" },
+ { 27, "ms170" },
+ { 28, "ms180" },
+ { 29, "ms190" },
+ { 30, "ms200" },
+ { 31, "ms220" },
+ { 32, "ms240" },
+ { 33, "ms260" },
+ { 34, "ms280" },
+ { 35, "ms300" },
+ { 36, "ms500" },
+ { 37, "ms750" },
+ { 38, "ms1000" },
+ { 39, "ms1500" },
+ { 40, "ms3000" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_ReorderingUL(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,
+ 41, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_T_ReorderingDL_vals[] = {
+ { 0, "ms0" },
+ { 1, "ms5" },
+ { 2, "ms10" },
+ { 3, "ms15" },
+ { 4, "ms20" },
+ { 5, "ms25" },
+ { 6, "ms30" },
+ { 7, "ms35" },
+ { 8, "ms40" },
+ { 9, "ms45" },
+ { 10, "ms50" },
+ { 11, "ms55" },
+ { 12, "ms60" },
+ { 13, "ms65" },
+ { 14, "ms70" },
+ { 15, "ms75" },
+ { 16, "ms80" },
+ { 17, "ms85" },
+ { 18, "ms90" },
+ { 19, "ms95" },
+ { 20, "ms100" },
+ { 21, "ms110" },
+ { 22, "ms120" },
+ { 23, "ms130" },
+ { 24, "ms140" },
+ { 25, "ms150" },
+ { 26, "ms160" },
+ { 27, "ms170" },
+ { 28, "ms180" },
+ { 29, "ms190" },
+ { 30, "ms200" },
+ { 31, "ms220" },
+ { 32, "ms240" },
+ { 33, "ms260" },
+ { 34, "ms280" },
+ { 35, "ms300" },
+ { 36, "ms500" },
+ { 37, "ms750" },
+ { 38, "ms1000" },
+ { 39, "ms1500" },
+ { 40, "ms3000" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_ReorderingDL(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,
+ 41, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t T_ReorderingTimer_sequence[] = {
+ { &hf_e1ap_t_ReorderingUL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_T_ReorderingUL },
+ { &hf_e1ap_t_ReorderingDL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_T_ReorderingDL },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_T_ReorderingTimer(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_e1ap_T_ReorderingTimer, T_ReorderingTimer_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_ULDataSplitThreshold_vals[] = {
+ { 0, "b0" },
+ { 1, "b100" },
+ { 2, "b200" },
+ { 3, "b400" },
+ { 4, "b800" },
+ { 5, "b1600" },
+ { 6, "b3200" },
+ { 7, "b6400" },
+ { 8, "b12800" },
+ { 9, "b25600" },
+ { 10, "b51200" },
+ { 11, "b102400" },
+ { 12, "b204800" },
+ { 13, "b409600" },
+ { 14, "b819200" },
+ { 15, "b1228800" },
+ { 16, "b1638400" },
+ { 17, "b2457600" },
+ { 18, "b3276800" },
+ { 19, "b4096000" },
+ { 20, "b4915200" },
+ { 21, "b5734400" },
+ { 22, "b6553600" },
+ { 23, "infinity" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_ULDataSplitThreshold(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,
+ 24, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_PDCP_Duplication_vals[] = {
+ { 0, "true" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_PDCP_Duplication(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 PDCP_Configuration_sequence[] = {
+ { &hf_e1ap_pDCP_SN_Size , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDCP_SN_Size },
+ { &hf_e1ap_rLC_Mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_RLC_Mode },
+ { &hf_e1ap_rOHC_Parameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ROHC_Parameters },
+ { &hf_e1ap_t_ReorderingTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_T_ReorderingTimer },
+ { &hf_e1ap_discardTimer , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DiscardTimer },
+ { &hf_e1ap_uLDataSplitThreshold, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ULDataSplitThreshold },
+ { &hf_e1ap_pDCP_Duplication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Duplication },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDCP_Configuration(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_e1ap_PDCP_Configuration, PDCP_Configuration_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_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 value_string e1ap_PriorityLevel_vals[] = {
+ { 0, "spare" },
+ { 1, "highest" },
+ { 14, "lowest" },
+ { 15, "no-priority" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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 e1ap_Pre_emptionCapability_vals[] = {
+ { 0, "shall-not-trigger-pre-emption" },
+ { 1, "may-trigger-pre-emption" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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 e1ap_Pre_emptionVulnerability_vals[] = {
+ { 0, "not-pre-emptable" },
+ { 1, "pre-emptable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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 EUTRANAllocationAndRetentionPriority_sequence[] = {
+ { &hf_e1ap_priorityLevel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PriorityLevel },
+ { &hf_e1ap_pre_emptionCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Pre_emptionCapability },
+ { &hf_e1ap_pre_emptionVulnerability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Pre_emptionVulnerability },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRANAllocationAndRetentionPriority(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_e1ap_EUTRANAllocationAndRetentionPriority, EUTRANAllocationAndRetentionPriority_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GBR_QosInformation_sequence[] = {
+ { &hf_e1ap_e_RAB_MaximumBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_e_RAB_MaximumBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_e_RAB_GuaranteedBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_e_RAB_GuaranteedBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_GBR_QosInformation, GBR_QosInformation_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_QoS_sequence[] = {
+ { &hf_e1ap_qCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QCI },
+ { &hf_e1ap_eUTRANallocationAndRetentionPriority, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_EUTRANAllocationAndRetentionPriority },
+ { &hf_e1ap_gbrQosInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_GBR_QosInformation },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_QoS(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_e1ap_EUTRAN_QoS, EUTRAN_QoS_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_PDCP_Count_Request_vals[] = {
+ { 0, "requested" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_PDCP_Count_Request(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 DRB_To_Modify_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_pDCP_Configuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Configuration },
+ { &hf_e1ap_eUTRAN_QoS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_EUTRAN_QoS },
+ { &hf_e1ap_s1_UL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_data_Forwarding_Information_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Request },
+ { &hf_e1ap_pDCP_Count_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count_Request },
+ { &hf_e1ap_pDCP_UL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_pDCP_DL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_dL_UP_Parameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_Parameters },
+ { &hf_e1ap_cell_Group_To_Add, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_cell_Group_To_Modify, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_cell_Group_To_Remove, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_To_Modify_Item_EUTRAN(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_e1ap_DRB_To_Modify_Item_EUTRAN, DRB_To_Modify_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Modify_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_To_Modify_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Modify_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_To_Modify_List_EUTRAN(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_e1ap_DRB_To_Modify_List_EUTRAN, DRB_To_Modify_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_SDAP_Header_UL_vals[] = {
+ { 0, "present" },
+ { 1, "absent" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_SDAP_Header_UL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_SDAP_Header_DL_vals[] = {
+ { 0, "present" },
+ { 1, "absent" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_SDAP_Header_DL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SDAP_Configuration_sequence[] = {
+ { &hf_e1ap_defaultDRB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DefaultDRB },
+ { &hf_e1ap_sDAP_Header_UL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_SDAP_Header_UL },
+ { &hf_e1ap_sDAP_Header_DL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_SDAP_Header_DL },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_SDAP_Configuration(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_e1ap_SDAP_Configuration, SDAP_Configuration_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_INTEGER_0_255_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 255U, NULL, TRUE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_INTEGER_1_127_(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, 127U, NULL, TRUE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_MaxDataBurstVolume(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Non_Dynamic5QIDescriptor_sequence[] = {
+ { &hf_e1ap_fiveQI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_INTEGER_0_255_ },
+ { &hf_e1ap_qoSPriorityLevel_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_INTEGER_1_127_ },
+ { &hf_e1ap_averagingWindow, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_AveragingWindow },
+ { &hf_e1ap_maxDataBurstVolume, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_MaxDataBurstVolume },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Non_Dynamic5QIDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_Non_Dynamic5QIDescriptor, Non_Dynamic5QIDescriptor_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_INTEGER_1_127(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, 127U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_PacketDelayBudget(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_PacketErrorRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_T_delayCritical_vals[] = {
+ { 0, "delay-critical" },
+ { 1, "non-delay-critical" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_delayCritical(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Dynamic5QIDescriptor_sequence[] = {
+ { &hf_e1ap_qoSPriorityLevel, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_INTEGER_1_127 },
+ { &hf_e1ap_packetDelayBudget, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PacketDelayBudget },
+ { &hf_e1ap_packetErrorRate, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PacketErrorRate },
+ { &hf_e1ap_delayCritical , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_T_delayCritical },
+ { &hf_e1ap_averagingWindow, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_AveragingWindow },
+ { &hf_e1ap_maxDataBurstVolume, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_MaxDataBurstVolume },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Dynamic5QIDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_Dynamic5QIDescriptor, Dynamic5QIDescriptor_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_QoS_Characteristics_vals[] = {
+ { 0, "non-Dynamic-5QI" },
+ { 1, "dynamic-5QI" },
+ { 0, NULL }
+};
+
+static const per_choice_t QoS_Characteristics_choice[] = {
+ { 0, &hf_e1ap_non_Dynamic_5QI, ASN1_EXTENSION_ROOT , dissect_e1ap_Non_Dynamic5QIDescriptor },
+ { 1, &hf_e1ap_dynamic_5QI , ASN1_EXTENSION_ROOT , dissect_e1ap_Dynamic5QIDescriptor },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_QoS_Characteristics(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_e1ap_QoS_Characteristics, QoS_Characteristics_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t NGRANAllocationAndRetentionPriority_sequence[] = {
+ { &hf_e1ap_priorityLevel , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PriorityLevel },
+ { &hf_e1ap_pre_emptionCapability, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Pre_emptionCapability },
+ { &hf_e1ap_pre_emptionVulnerability, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Pre_emptionVulnerability },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NGRANAllocationAndRetentionPriority(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_e1ap_NGRANAllocationAndRetentionPriority, NGRANAllocationAndRetentionPriority_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_T_notificationControl_vals[] = {
+ { 0, "notification-enabled" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_notificationControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_MaxPacketLossRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 1000U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GBR_QoSFlowInformation_sequence[] = {
+ { &hf_e1ap_maxFlowBitRateDownlink, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_maxFlowBitRateUplink, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_guaranteedFlowBitRateDownlink, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_guaranteedFlowBitRateUplink, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BitRate },
+ { &hf_e1ap_notificationControl, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_T_notificationControl },
+ { &hf_e1ap_maxPacketLossRateDownlink, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_MaxPacketLossRate },
+ { &hf_e1ap_maxPacketLossRateUplink, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_MaxPacketLossRate },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GBR_QoSFlowInformation(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_e1ap_GBR_QoSFlowInformation, GBR_QoSFlowInformation_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_T_reflective_QoS_Attribute_vals[] = {
+ { 0, "subject-to" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_reflective_QoS_Attribute(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 e1ap_T_additional_QoS_Information_vals[] = {
+ { 0, "more-likely" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_additional_QoS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_INTEGER_1_8_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 8U, NULL, TRUE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_T_reflective_QoS_Indicator_vals[] = {
+ { 0, "enabled" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_T_reflective_QoS_Indicator(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 QoSFlowLevelQoSParameters_sequence[] = {
+ { &hf_e1ap_qoS_Characteristics, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Characteristics },
+ { &hf_e1ap_nGRANallocationRetentionPriority, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_NGRANAllocationAndRetentionPriority },
+ { &hf_e1ap_gBR_QoS_Flow_Information, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_GBR_QoSFlowInformation },
+ { &hf_e1ap_reflective_QoS_Attribute, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_T_reflective_QoS_Attribute },
+ { &hf_e1ap_additional_QoS_Information, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_T_additional_QoS_Information },
+ { &hf_e1ap_paging_Policy_Indicator, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_INTEGER_1_8_ },
+ { &hf_e1ap_reflective_QoS_Indicator, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_T_reflective_QoS_Indicator },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_QoSFlowLevelQoSParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_QoSFlowLevelQoSParameters, QoSFlowLevelQoSParameters_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Flow_QoS_Parameter_Item_sequence[] = {
+ { &hf_e1ap_qoS_Flow_Indicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_Indicator },
+ { &hf_e1ap_qoSFlowLevelQoSParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QoSFlowLevelQoSParameters },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_QoS_Flow_QoS_Parameter_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_e1ap_QoS_Flow_QoS_Parameter_Item, QoS_Flow_QoS_Parameter_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Flow_QoS_Parameter_List_sequence_of[1] = {
+ { &hf_e1ap_QoS_Flow_QoS_Parameter_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_QoS_Parameter_Item },
+};
+
+static int
+dissect_e1ap_QoS_Flow_QoS_Parameter_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_e1ap_QoS_Flow_QoS_Parameter_List, QoS_Flow_QoS_Parameter_List_sequence_of,
+ 1, maxnoofQoSFlows, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Modify_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_sDAP_Configuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_SDAP_Configuration },
+ { &hf_e1ap_pDCP_Configuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Configuration },
+ { &hf_e1ap_dRB_Data_Forwarding_Information_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Request },
+ { &hf_e1ap_pDCP_Count_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count_Request },
+ { &hf_e1ap_pDCP_UL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_pDCP_DL_Count , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDCP_Count },
+ { &hf_e1ap_dL_UP_Parameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_Parameters },
+ { &hf_e1ap_cell_Group_To_Add, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_cell_Group_To_Modify, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_cell_Group_To_Remove, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_flow_Mapping_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_QoS_Flow_QoS_Parameter_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_To_Modify_Item_NG_RAN(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_e1ap_DRB_To_Modify_Item_NG_RAN, DRB_To_Modify_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Modify_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_To_Modify_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Modify_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_To_Modify_List_NG_RAN(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_e1ap_DRB_To_Modify_List_NG_RAN, DRB_To_Modify_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Remove_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_To_Remove_Item_EUTRAN(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_e1ap_DRB_To_Remove_Item_EUTRAN, DRB_To_Remove_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Remove_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_To_Remove_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Remove_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_To_Remove_List_EUTRAN(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_e1ap_DRB_To_Remove_List_EUTRAN, DRB_To_Remove_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Remove_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_To_Remove_Item_NG_RAN(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_e1ap_DRB_To_Remove_Item_NG_RAN, DRB_To_Remove_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Remove_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_To_Remove_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Remove_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_To_Remove_List_NG_RAN(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_e1ap_DRB_To_Remove_List_NG_RAN, DRB_To_Remove_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Setup_Item_EUTRAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_pDCP_Configuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDCP_Configuration },
+ { &hf_e1ap_eUTRAN_QoS , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_EUTRAN_QoS },
+ { &hf_e1ap_s1_UL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_data_Forwarding_Information_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Request },
+ { &hf_e1ap_cell_Group_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_To_Setup_Item_EUTRAN(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_e1ap_DRB_To_Setup_Item_EUTRAN, DRB_To_Setup_Item_EUTRAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Setup_List_EUTRAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_To_Setup_List_EUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Setup_Item_EUTRAN },
+};
+
+static int
+dissect_e1ap_DRB_To_Setup_List_EUTRAN(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_e1ap_DRB_To_Setup_List_EUTRAN, DRB_To_Setup_List_EUTRAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Setup_Item_NG_RAN_sequence[] = {
+ { &hf_e1ap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_ID },
+ { &hf_e1ap_sDAP_Configuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_SDAP_Configuration },
+ { &hf_e1ap_pDCP_Configuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDCP_Configuration },
+ { &hf_e1ap_cell_Group_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cell_Group_Information },
+ { &hf_e1ap_flow_Mapping_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_QoS_Flow_QoS_Parameter_List },
+ { &hf_e1ap_dRB_Data_Forwarding_Information_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Request },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DRB_To_Setup_Item_NG_RAN(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_e1ap_DRB_To_Setup_Item_NG_RAN, DRB_To_Setup_Item_NG_RAN_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_To_Setup_List_NG_RAN_sequence_of[1] = {
+ { &hf_e1ap_DRB_To_Setup_List_NG_RAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Setup_Item_NG_RAN },
+};
+
+static int
+dissect_e1ap_DRB_To_Setup_List_NG_RAN(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_e1ap_DRB_To_Setup_List_NG_RAN, DRB_To_Setup_List_NG_RAN_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_EncryptionKey(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 EUTRAN_QoS_Support_Item_sequence[] = {
+ { &hf_e1ap_eUTRAN_QoS , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_EUTRAN_QoS },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_QoS_Support_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_e1ap_EUTRAN_QoS_Support_Item, EUTRAN_QoS_Support_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_QoS_Support_List_sequence_of[1] = {
+ { &hf_e1ap_EUTRAN_QoS_Support_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_EUTRAN_QoS_Support_Item },
+};
+
+static int
+dissect_e1ap_EUTRAN_QoS_Support_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_e1ap_EUTRAN_QoS_Support_List, EUTRAN_QoS_Support_List_sequence_of,
+ 1, maxnoofEUTRANQOSParameters, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_GNB_CU_CP_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 int
+dissect_e1ap_GNB_CU_CP_UE_E1AP_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_e1ap_GNB_CU_UP_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_e1ap_GNB_CU_UP_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 int
+dissect_e1ap_GNB_CU_UP_UE_E1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 4294967295U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_IntegrityProtectionIndication_vals[] = {
+ { 0, "required" },
+ { 1, "preferred" },
+ { 2, "not-needed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_IntegrityProtectionIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string e1ap_IntegrityProtectionAlgorithm_vals[] = {
+ { 0, "nIA0" },
+ { 1, "i-128-NIA1" },
+ { 2, "i-128-NIA2" },
+ { 3, "i-128-NIA3" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_IntegrityProtectionAlgorithm(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,
+ 4, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_IntegrityProtectionKey(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 NG_RAN_QoS_Support_Item_sequence[] = {
+ { &hf_e1ap_non_Dynamic5QIDescriptor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Non_Dynamic5QIDescriptor },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_QoS_Support_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_e1ap_NG_RAN_QoS_Support_Item, NG_RAN_QoS_Support_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_QoS_Support_List_sequence_of[1] = {
+ { &hf_e1ap_NG_RAN_QoS_Support_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_NG_RAN_QoS_Support_Item },
+};
+
+static int
+dissect_e1ap_NG_RAN_QoS_Support_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_e1ap_NG_RAN_QoS_Support_List, NG_RAN_QoS_Support_List_sequence_of,
+ 1, maxnoofNGRANQOSParameters, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_NR_Cell_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 36, 36, FALSE, NULL, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 252 "./asn1/e1ap/e1ap.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_e1ap_PLMN_Identity);
+ dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ }
+
+
+
+ return offset;
+}
+
+
+static const per_sequence_t NR_CGI_sequence[] = {
+ { &hf_e1ap_pLMN_Identity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PLMN_Identity },
+ { &hf_e1ap_nR_Cell_Identity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_NR_Cell_Identity },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NR_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_NR_CGI, NR_CGI_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NR_CGI_Support_Item_sequence[] = {
+ { &hf_e1ap_nR_CGI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_NR_CGI },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NR_CGI_Support_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_e1ap_NR_CGI_Support_Item, NR_CGI_Support_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NR_CGI_Support_List_sequence_of[1] = {
+ { &hf_e1ap_NR_CGI_Support_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_NR_CGI_Support_Item },
+};
+
+static int
+dissect_e1ap_NR_CGI_Support_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_e1ap_NR_CGI_Support_List, NR_CGI_Support_List_sequence_of,
+ 1, maxnoofNRCGI, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_PDU_Session_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 255U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Confirm_Modified_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_dRB_Confirm_Modified_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Confirm_Modified_List_NG_RAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Confirm_Modified_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_e1ap_PDU_Session_Resource_Confirm_Modified_Item, PDU_Session_Resource_Confirm_Modified_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Confirm_Modified_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_Confirm_Modified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Confirm_Modified_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Confirm_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_e1ap_PDU_Session_Resource_Confirm_Modified_List, PDU_Session_Resource_Confirm_Modified_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Failed_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_casue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Failed_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_e1ap_PDU_Session_Resource_Failed_Item, PDU_Session_Resource_Failed_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Failed_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_Failed_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Failed_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Failed_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_e1ap_PDU_Session_Resource_Failed_List, PDU_Session_Resource_Failed_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Failed_To_Modify_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_casue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_Cause },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Failed_To_Modify_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_e1ap_PDU_Session_Resource_Failed_To_Modify_Item, PDU_Session_Resource_Failed_To_Modify_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Failed_To_Modify_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_Failed_To_Modify_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Failed_To_Modify_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Failed_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_e1ap_PDU_Session_Resource_Failed_To_Modify_List, PDU_Session_Resource_Failed_To_Modify_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Modified_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_dRB_Setup_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Setup_List_NG_RAN },
+ { &hf_e1ap_dRB_Failed_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Failed_List_NG_RAN },
+ { &hf_e1ap_dRB_Modified_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Modified_List_NG_RAN },
+ { &hf_e1ap_dRB_Failed_To_Modify_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Failed_To_Modify_List_NG_RAN },
+ { &hf_e1ap_dRB_To_Remove_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Remove_List_NG_RAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Modified_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_e1ap_PDU_Session_Resource_Modified_Item, PDU_Session_Resource_Modified_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Modified_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_Modified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Modified_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_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_e1ap_PDU_Session_Resource_Modified_List, PDU_Session_Resource_Modified_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Required_To_Modify_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_nG_DL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_pDU_Session_Data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_dRB_Required_To_Modify_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Required_To_Modify_List_NG_RAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Required_To_Modify_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_e1ap_PDU_Session_Resource_Required_To_Modify_Item, PDU_Session_Resource_Required_To_Modify_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Required_To_Modify_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_Required_To_Modify_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Required_To_Modify_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Required_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_e1ap_PDU_Session_Resource_Required_To_Modify_List, PDU_Session_Resource_Required_To_Modify_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Setup_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_nG_DL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_pDU_Session_Data_Forwarding_Information_Response, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Response },
+ { &hf_e1ap_dRB_Setup_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Setup_List_NG_RAN },
+ { &hf_e1ap_dRB_Failed_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Failed_List_NG_RAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_Setup_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_e1ap_PDU_Session_Resource_Setup_Item, PDU_Session_Resource_Setup_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_Setup_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_Setup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Setup_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_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_e1ap_PDU_Session_Resource_Setup_List, PDU_Session_Resource_Setup_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_PDU_Session_Type_vals[] = {
+ { 0, "ipv4" },
+ { 1, "ipv6" },
+ { 2, "ipv4v6" },
+ { 3, "ethernet" },
+ { 4, "unstructured" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_PDU_Session_Type(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 int
+dissect_e1ap_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, 1, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SNSSAI_sequence[] = {
+ { &hf_e1ap_sST , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_OCTET_STRING_SIZE_1 },
+ { &hf_e1ap_sD , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_OCTET_STRING_SIZE_3 },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_SNSSAI(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_e1ap_SNSSAI, SNSSAI_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SecurityIndication_sequence[] = {
+ { &hf_e1ap_integrityProtectionIndication, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_IntegrityProtectionIndication },
+ { &hf_e1ap_confidentialityProtectionIndication, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ConfidentialityProtectionIndication },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_SecurityIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_SecurityIndication, SecurityIndication_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_To_Modify_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_pDU_Session_Type, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Type },
+ { &hf_e1ap_sNSSAI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_SNSSAI },
+ { &hf_e1ap_securityIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_SecurityIndication },
+ { &hf_e1ap_pDU_Session_Resource_AMBR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_BitRate },
+ { &hf_e1ap_nG_UL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_pDU_Session_Data_Forwarding_Information_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Request },
+ { &hf_e1ap_dRB_To_Setup_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Setup_List_NG_RAN },
+ { &hf_e1ap_dRB_To_Modify_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Modify_List_NG_RAN },
+ { &hf_e1ap_dRB_To_Remove_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Remove_List_NG_RAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_To_Modify_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_e1ap_PDU_Session_Resource_To_Modify_Item, PDU_Session_Resource_To_Modify_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_To_Modify_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_To_Modify_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_To_Modify_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_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_e1ap_PDU_Session_Resource_To_Modify_List, PDU_Session_Resource_To_Modify_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_To_Remove_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_To_Remove_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_e1ap_PDU_Session_Resource_To_Remove_Item, PDU_Session_Resource_To_Remove_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_To_Remove_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_To_Remove_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_To_Remove_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_To_Remove_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_e1ap_PDU_Session_Resource_To_Remove_List, PDU_Session_Resource_To_Remove_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_To_Setup_Item_sequence[] = {
+ { &hf_e1ap_pDU_Session_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_ID },
+ { &hf_e1ap_pDU_Session_Type, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Type },
+ { &hf_e1ap_sNSSAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_SNSSAI },
+ { &hf_e1ap_securityIndication, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_SecurityIndication },
+ { &hf_e1ap_pDU_Session_Resource_AMBR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_BitRate },
+ { &hf_e1ap_nG_UL_UP_TNL_Information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UP_TNL_Information },
+ { &hf_e1ap_pDU_Session_Data_Forwarding_Information_Request, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Data_Forwarding_Information_Request },
+ { &hf_e1ap_dRB_To_Setup_List_NG_RAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Setup_List_NG_RAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_To_Setup_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_e1ap_PDU_Session_Resource_To_Setup_Item, PDU_Session_Resource_To_Setup_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PDU_Session_Resource_To_Setup_List_sequence_of[1] = {
+ { &hf_e1ap_PDU_Session_Resource_To_Setup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_To_Setup_Item },
+};
+
+static int
+dissect_e1ap_PDU_Session_Resource_To_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_e1ap_PDU_Session_Resource_To_Setup_List, PDU_Session_Resource_To_Setup_List_sequence_of,
+ 1, maxnoofPDUSessionResource, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t QoS_Parameters_Support_List_sequence[] = {
+ { &hf_e1ap_eUTRAN_QoS_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_EUTRAN_QoS_Support_List },
+ { &hf_e1ap_nG_RAN_QoS_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_NG_RAN_QoS_Support_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_QoS_Parameters_Support_List(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_e1ap_QoS_Parameters_Support_List, QoS_Parameters_Support_List_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SecurityAlgorithm_sequence[] = {
+ { &hf_e1ap_cipheringAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_CipheringAlgorithm },
+ { &hf_e1ap_integrityProtectionAlgorithm, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_IntegrityProtectionAlgorithm },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_SecurityAlgorithm(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_e1ap_SecurityAlgorithm, SecurityAlgorithm_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UPSecuritykey_sequence[] = {
+ { &hf_e1ap_encryptionKey , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_EncryptionKey },
+ { &hf_e1ap_integrityProtectionKey, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_IntegrityProtectionKey },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_UPSecuritykey(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_e1ap_UPSecuritykey, UPSecuritykey_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SecurityInformation_sequence[] = {
+ { &hf_e1ap_securityAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_SecurityAlgorithm },
+ { &hf_e1ap_uPSecuritykey , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_UPSecuritykey },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_SecurityInformation, SecurityInformation_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Slice_Support_Item_sequence[] = {
+ { &hf_e1ap_sNSSAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_SNSSAI },
+ { &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Slice_Support_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_e1ap_Slice_Support_Item, Slice_Support_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Slice_Support_List_sequence_of[1] = {
+ { &hf_e1ap_Slice_Support_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Slice_Support_Item },
+};
+
+static int
+dissect_e1ap_Slice_Support_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_e1ap_Slice_Support_List, Slice_Support_List_sequence_of,
+ 1, maxnoofSliceItems, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_TimeToWait_vals[] = {
+ { 0, "v1s" },
+ { 1, "v2s" },
+ { 2, "v5s" },
+ { 3, "v10s" },
+ { 4, "v20s" },
+ { 5, "v60s" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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 const per_sequence_t UE_associatedLogicalE1_ConnectionItem_sequence[] = {
+ { &hf_e1ap_gNB_CU_CP_UE_E1AP_ID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_GNB_CU_CP_UE_E1AP_ID },
+ { &hf_e1ap_gNB_CU_UP_UE_E1AP_ID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_GNB_CU_UP_UE_E1AP_ID },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_UE_associatedLogicalE1_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_e1ap_UE_associatedLogicalE1_ConnectionItem, UE_associatedLogicalE1_ConnectionItem_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Reset_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 313 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_Reset, Reset_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_ResetAll_vals[] = {
+ { 0, "reset-all" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_e1ap_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_associatedLogicalE1_ConnectionListRes_sequence_of[1] = {
+ { &hf_e1ap_UE_associatedLogicalE1_ConnectionListRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_e1ap_UE_associatedLogicalE1_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_e1ap_UE_associatedLogicalE1_ConnectionListRes, UE_associatedLogicalE1_ConnectionListRes_sequence_of,
+ 1, maxnoofIndividualE1ConnectionsToReset, FALSE);
+
+ return offset;
+}
+
+
+static const value_string e1ap_ResetType_vals[] = {
+ { 0, "e1-Interface" },
+ { 1, "partOfE1-Interface" },
+ { 0, NULL }
+};
+
+static const per_choice_t ResetType_choice[] = {
+ { 0, &hf_e1ap_e1_Interface , ASN1_EXTENSION_ROOT , dissect_e1ap_ResetAll },
+ { 1, &hf_e1ap_partOfE1_Interface, ASN1_EXTENSION_ROOT , dissect_e1ap_UE_associatedLogicalE1_ConnectionListRes },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_ResetType, ResetType_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t ResetAcknowledge_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 315 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_ResetAcknowledge, ResetAcknowledge_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UE_associatedLogicalE1_ConnectionListResAck_sequence_of[1] = {
+ { &hf_e1ap_UE_associatedLogicalE1_ConnectionListResAck_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_e1ap_UE_associatedLogicalE1_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_e1ap_UE_associatedLogicalE1_ConnectionListResAck, UE_associatedLogicalE1_ConnectionListResAck_sequence_of,
+ 1, maxnoofIndividualE1ConnectionsToReset, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t ErrorIndication_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 317 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_ErrorIndication, ErrorIndication_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_E1SetupRequest_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_E1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 319 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_UP_E1SetupRequest, GNB_CU_UP_E1SetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SupportedPLMNs_List_sequence_of[1] = {
+ { &hf_e1ap_SupportedPLMNs_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_e1ap_SupportedPLMNs_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_e1ap_SupportedPLMNs_List, SupportedPLMNs_List_sequence_of,
+ 1, maxnoofSPLMNs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SupportedPLMNs_Item_sequence[] = {
+ { &hf_e1ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PLMN_Identity },
+ { &hf_e1ap_slice_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_Slice_Support_List },
+ { &hf_e1ap_nR_CGI_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_NR_CGI_Support_List },
+ { &hf_e1ap_qoS_Parameters_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_QoS_Parameters_Support_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_SupportedPLMNs_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_e1ap_SupportedPLMNs_Item, SupportedPLMNs_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_E1SetupResponse_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_E1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 321 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_UP_E1SetupResponse, GNB_CU_UP_E1SetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_E1SetupFailure_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_E1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 323 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_UP_E1SetupFailure, GNB_CU_UP_E1SetupFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_CP_E1SetupRequest_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_CP_E1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 325 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_CP_E1SetupRequest, GNB_CU_CP_E1SetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_CP_E1SetupResponse_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_CP_E1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 327 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_CP_E1SetupResponse, GNB_CU_CP_E1SetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_CP_E1SetupFailure_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_CP_E1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 329 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_CP_E1SetupFailure, GNB_CU_CP_E1SetupFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_ConfigurationUpdate_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_ConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 331 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdate");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_UP_ConfigurationUpdate, GNB_CU_UP_ConfigurationUpdate_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_ConfigurationUpdateAcknowledge_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 333 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdateAcknowledge");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge, GNB_CU_UP_ConfigurationUpdateAcknowledge_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_UP_ConfigurationUpdateFailure_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_UP_ConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 335 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdateFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_UP_ConfigurationUpdateFailure, GNB_CU_UP_ConfigurationUpdateFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_CP_ConfigurationUpdate_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_CP_ConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 337 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdate");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_CP_ConfigurationUpdate, GNB_CU_CP_ConfigurationUpdate_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_CP_ConfigurationUpdateAcknowledge_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 339 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdateAcknowledge");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge, GNB_CU_CP_ConfigurationUpdateAcknowledge_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GNB_CU_CP_ConfigurationUpdateFailure_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_GNB_CU_CP_ConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 341 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdateFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_GNB_CU_CP_ConfigurationUpdateFailure, GNB_CU_CP_ConfigurationUpdateFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t E1ReleaseRequest_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_E1ReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 343 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E1ReleaseRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_E1ReleaseRequest, E1ReleaseRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t E1ReleaseResponse_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_E1ReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 345 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E1ReleaseResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_E1ReleaseResponse, E1ReleaseResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextSetupRequest_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 347 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextSetupRequest, BearerContextSetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_BearerContextSetupRequest_sequence[] = {
+ { &hf_e1ap_dRB_To_Setup_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_To_Setup_List_EUTRAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_BearerContextSetupRequest(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_e1ap_EUTRAN_BearerContextSetupRequest, EUTRAN_BearerContextSetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_BearerContextSetupRequest_sequence[] = {
+ { &hf_e1ap_pDU_Session_Resource_To_Setup_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_To_Setup_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_BearerContextSetupRequest(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_e1ap_NG_RAN_BearerContextSetupRequest, NG_RAN_BearerContextSetupRequest_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_System_BearerContextSetupRequest_vals[] = {
+ { 0, "e-UTRAN-BearerContextSetupRequest" },
+ { 1, "nG-RAN-BearerContextSetupRequest" },
+ { 0, NULL }
+};
+
+static const per_choice_t System_BearerContextSetupRequest_choice[] = {
+ { 0, &hf_e1ap_e_UTRAN_BearerContextSetupRequest, ASN1_EXTENSION_ROOT , dissect_e1ap_EUTRAN_BearerContextSetupRequest },
+ { 1, &hf_e1ap_nG_RAN_BearerContextSetupRequest, ASN1_EXTENSION_ROOT , dissect_e1ap_NG_RAN_BearerContextSetupRequest },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_System_BearerContextSetupRequest(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_e1ap_System_BearerContextSetupRequest, System_BearerContextSetupRequest_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextSetupResponse_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 349 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextSetupResponse, BearerContextSetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_BearerContextSetupResponse_sequence[] = {
+ { &hf_e1ap_dRB_Setup_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_DRB_Setup_List_EUTRAN },
+ { &hf_e1ap_dRB_Failed_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Failed_List_EUTRAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_BearerContextSetupResponse(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_e1ap_EUTRAN_BearerContextSetupResponse, EUTRAN_BearerContextSetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_BearerContextSetupResponse_sequence[] = {
+ { &hf_e1ap_pDU_Session_Resource_Setup_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PDU_Session_Resource_Setup_List },
+ { &hf_e1ap_pDU_Session_Resource_Failed_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Failed_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_BearerContextSetupResponse(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_e1ap_NG_RAN_BearerContextSetupResponse, NG_RAN_BearerContextSetupResponse_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_System_BearerContextSetupResponse_vals[] = {
+ { 0, "e-UTRAN-BearerContextSetupResponse" },
+ { 1, "nG-RAN-BearerContextSetupResponse" },
+ { 0, NULL }
+};
+
+static const per_choice_t System_BearerContextSetupResponse_choice[] = {
+ { 0, &hf_e1ap_e_UTRAN_BearerContextSetupResponse, ASN1_EXTENSION_ROOT , dissect_e1ap_EUTRAN_BearerContextSetupResponse },
+ { 1, &hf_e1ap_nG_RAN_BearerContextSetupResponse, ASN1_EXTENSION_ROOT , dissect_e1ap_NG_RAN_BearerContextSetupResponse },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_System_BearerContextSetupResponse(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_e1ap_System_BearerContextSetupResponse, System_BearerContextSetupResponse_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextSetupFailure_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 351 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextSetupFailure, BearerContextSetupFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextModificationRequest_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 353 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextModificationRequest, BearerContextModificationRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_BearerContextModificationRequest_sequence[] = {
+ { &hf_e1ap_dRB_To_Setup_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Setup_List_EUTRAN },
+ { &hf_e1ap_dRB_To_Modify_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Modify_List_EUTRAN },
+ { &hf_e1ap_dRB_To_Remove_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Remove_List_EUTRAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_BearerContextModificationRequest(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_e1ap_EUTRAN_BearerContextModificationRequest, EUTRAN_BearerContextModificationRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_BearerContextModificationRequest_sequence[] = {
+ { &hf_e1ap_pDU_Session_Resource_To_Setup_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_To_Setup_List },
+ { &hf_e1ap_pDU_Session_Resource_To_Modify_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_To_Modify_List },
+ { &hf_e1ap_pDU_Session_Resource_To_Remove_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_To_Remove_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_BearerContextModificationRequest(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_e1ap_NG_RAN_BearerContextModificationRequest, NG_RAN_BearerContextModificationRequest_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_System_BearerContextModificationRequest_vals[] = {
+ { 0, "e-UTRAN-BearerContextModificationRequest" },
+ { 1, "nG-RAN-BearerContextModificationRequest" },
+ { 0, NULL }
+};
+
+static const per_choice_t System_BearerContextModificationRequest_choice[] = {
+ { 0, &hf_e1ap_e_UTRAN_BearerContextModificationRequest, ASN1_EXTENSION_ROOT , dissect_e1ap_EUTRAN_BearerContextModificationRequest },
+ { 1, &hf_e1ap_nG_RAN_BearerContextModificationRequest, ASN1_EXTENSION_ROOT , dissect_e1ap_NG_RAN_BearerContextModificationRequest },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_System_BearerContextModificationRequest(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_e1ap_System_BearerContextModificationRequest, System_BearerContextModificationRequest_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextModificationResponse_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 355 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationResponse");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextModificationResponse, BearerContextModificationResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_BearerContextModificationResponse_sequence[] = {
+ { &hf_e1ap_dRB_Setup_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Setup_List_EUTRAN },
+ { &hf_e1ap_dRB_Failed_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Failed_List_EUTRAN },
+ { &hf_e1ap_dRB_Modified_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Modified_List_EUTRAN },
+ { &hf_e1ap_dRB_Failed_To_Modify_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Failed_To_Modify_List_EUTRAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_BearerContextModificationResponse(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_e1ap_EUTRAN_BearerContextModificationResponse, EUTRAN_BearerContextModificationResponse_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_BearerContextModificationResponse_sequence[] = {
+ { &hf_e1ap_pDU_Session_Resource_Setup_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Setup_List },
+ { &hf_e1ap_pDU_Session_Resource_Failed_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Failed_List },
+ { &hf_e1ap_pDU_Session_Resource_Modified_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Modified_List },
+ { &hf_e1ap_pDU_Session_Resource_Failed_To_Modify_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Failed_To_Modify_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_BearerContextModificationResponse(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_e1ap_NG_RAN_BearerContextModificationResponse, NG_RAN_BearerContextModificationResponse_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_System_BearerContextModificationResponse_vals[] = {
+ { 0, "e-UTRAN-BearerContextModificationResponse" },
+ { 1, "nG-RAN-BearerContextModificationResponse" },
+ { 0, NULL }
+};
+
+static const per_choice_t System_BearerContextModificationResponse_choice[] = {
+ { 0, &hf_e1ap_e_UTRAN_BearerContextModificationResponse, ASN1_EXTENSION_ROOT , dissect_e1ap_EUTRAN_BearerContextModificationResponse },
+ { 1, &hf_e1ap_nG_RAN_BearerContextModificationResponse, ASN1_EXTENSION_ROOT , dissect_e1ap_NG_RAN_BearerContextModificationResponse },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_System_BearerContextModificationResponse(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_e1ap_System_BearerContextModificationResponse, System_BearerContextModificationResponse_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextModificationFailure_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 357 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationFailure");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextModificationFailure, BearerContextModificationFailure_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextModificationRequired_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 359 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationRequired");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextModificationRequired, BearerContextModificationRequired_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_BearerContextModificationRequired_sequence[] = {
+ { &hf_e1ap_dRB_Required_To_Modify_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Required_To_Modify_List_EUTRAN },
+ { &hf_e1ap_dRB_To_Remove_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_To_Remove_List_EUTRAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_BearerContextModificationRequired(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_e1ap_EUTRAN_BearerContextModificationRequired, EUTRAN_BearerContextModificationRequired_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_BearerContextModificationRequired_sequence[] = {
+ { &hf_e1ap_pDU_Session_Resource_Required_To_Modify_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Required_To_Modify_List },
+ { &hf_e1ap_pDU_Session_Resource_To_Remove_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_To_Remove_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_BearerContextModificationRequired(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_e1ap_NG_RAN_BearerContextModificationRequired, NG_RAN_BearerContextModificationRequired_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_System_BearerContextModificationRequired_vals[] = {
+ { 0, "e-UTRAN-BearerContextModificationRequired" },
+ { 1, "nG-RAN-BearerContextModificationRequired" },
+ { 0, NULL }
+};
+
+static const per_choice_t System_BearerContextModificationRequired_choice[] = {
+ { 0, &hf_e1ap_e_UTRAN_BearerContextModificationRequired, ASN1_EXTENSION_ROOT , dissect_e1ap_EUTRAN_BearerContextModificationRequired },
+ { 1, &hf_e1ap_nG_RAN_BearerContextModificationRequired, ASN1_EXTENSION_ROOT , dissect_e1ap_NG_RAN_BearerContextModificationRequired },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_System_BearerContextModificationRequired(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_e1ap_System_BearerContextModificationRequired, System_BearerContextModificationRequired_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextModificationConfirm_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 361 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationConfirm");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextModificationConfirm, BearerContextModificationConfirm_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t EUTRAN_BearerContextModificationConfirm_sequence[] = {
+ { &hf_e1ap_dRB_Confirm_Modified_List_EUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_DRB_Confirm_Modified_List_EUTRAN },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_EUTRAN_BearerContextModificationConfirm(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_e1ap_EUTRAN_BearerContextModificationConfirm, EUTRAN_BearerContextModificationConfirm_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t NG_RAN_BearerContextModificationConfirm_sequence[] = {
+ { &hf_e1ap_pDU_Session_Resource_Confirm_Modified_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_PDU_Session_Resource_Confirm_Modified_List },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_NG_RAN_BearerContextModificationConfirm(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_e1ap_NG_RAN_BearerContextModificationConfirm, NG_RAN_BearerContextModificationConfirm_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_System_BearerContextModificationConfirm_vals[] = {
+ { 0, "e-UTRAN-BearerContextModificationConfirm" },
+ { 1, "nG-RAN-BearerContextModificationConfirm" },
+ { 0, NULL }
+};
+
+static const per_choice_t System_BearerContextModificationConfirm_choice[] = {
+ { 0, &hf_e1ap_e_UTRAN_BearerContextModificationConfirm, ASN1_EXTENSION_ROOT , dissect_e1ap_EUTRAN_BearerContextModificationConfirm },
+ { 1, &hf_e1ap_nG_RAN_BearerContextModificationConfirm, ASN1_EXTENSION_ROOT , dissect_e1ap_NG_RAN_BearerContextModificationConfirm },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_System_BearerContextModificationConfirm(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_e1ap_System_BearerContextModificationConfirm, System_BearerContextModificationConfirm_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextReleaseCommand_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 363 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseCommand");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextReleaseCommand, BearerContextReleaseCommand_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextReleaseComplete_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 365 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseComplete");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextReleaseComplete, BearerContextReleaseComplete_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextReleaseRequest_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 367 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseRequest");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextReleaseRequest, BearerContextReleaseRequest_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Status_List_sequence_of[1] = {
+ { &hf_e1ap_DRB_Status_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_e1ap_DRB_Status_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_e1ap_DRB_Status_List, DRB_Status_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t BearerContextInactivityNotification_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_BearerContextInactivityNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 369 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextInactivityNotification");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_BearerContextInactivityNotification, BearerContextInactivityNotification_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DRB_Activity_List_sequence_of[1] = {
+ { &hf_e1ap_DRB_Activity_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_e1ap_DRB_Activity_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_e1ap_DRB_Activity_List, DRB_Activity_List_sequence_of,
+ 1, maxnoofDRBs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DLDataNotification_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DLDataNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 371 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLDataNotification");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_DLDataNotification, DLDataNotification_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DataUsageReport_sequence[] = {
+ { &hf_e1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_DataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 373 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataUsageReport");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_DataUsageReport, DataUsageReport_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateMessage_sequence[] = {
+ { &hf_e1ap_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_PrivateIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 375 "./asn1/e1ap/e1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_PrivateMessage, PrivateMessage_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 90 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_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_e1ap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProcedureCode },
+ { &hf_e1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_InitiatingMessage_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_InitiatingMessage, InitiatingMessage_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 94 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_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_e1ap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProcedureCode },
+ { &hf_e1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_SuccessfulOutcome_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_SuccessfulOutcome, SuccessfulOutcome_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_e1ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 98 "./asn1/e1ap/e1ap.cnf"
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
+ e1ap_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_e1ap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_ProcedureCode },
+ { &hf_e1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_Criticality },
+ { &hf_e1ap_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_UnsuccessfulOutcome_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_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_e1ap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
+
+ return offset;
+}
+
+
+static const value_string e1ap_E1AP_PDU_vals[] = {
+ { 0, "initiatingMessage" },
+ { 1, "successfulOutcome" },
+ { 2, "unsuccessfulOutcome" },
+ { 0, NULL }
+};
+
+static const per_choice_t E1AP_PDU_choice[] = {
+ { 0, &hf_e1ap_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_e1ap_InitiatingMessage },
+ { 1, &hf_e1ap_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_e1ap_SuccessfulOutcome },
+ { 2, &hf_e1ap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_e1ap_UnsuccessfulOutcome },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_e1ap_E1AP_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_e1ap_E1AP_PDU, E1AP_PDU_choice,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_BearerContextStatusChange_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_e1ap_BearerContextStatusChange(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextStatusChange_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BitRate_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_e1ap_BitRate(tvb, offset, &asn1_ctx, tree, hf_e1ap_BitRate_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_Cause(tvb, offset, &asn1_ctx, tree, hf_e1ap_Cause_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_CNSupport_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_e1ap_CNSupport(tvb, offset, &asn1_ctx, tree, hf_e1ap_CNSupport_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_e1ap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_e1ap_CriticalityDiagnostics_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Data_Usage_Report_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_e1ap_Data_Usage_Report_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_Data_Usage_Report_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRB_Activity_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_DRB_Activity_Item(tvb, offset, &asn1_ctx, tree, hf_e1ap_DRB_Activity_Item_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRB_Status_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_DRB_Status_Item(tvb, offset, &asn1_ctx, tree, hf_e1ap_DRB_Status_Item_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_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_e1ap_GNB_CU_CP_Name(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_Name_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_UE_E1AP_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_e1ap_GNB_CU_CP_UE_E1AP_ID(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_UE_E1AP_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_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_e1ap_GNB_CU_UP_ID(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_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_e1ap_GNB_CU_UP_Name(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_Name_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_UE_E1AP_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_e1ap_GNB_CU_UP_UE_E1AP_ID(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_UE_E1AP_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SecurityInformation_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_e1ap_SecurityInformation(tvb, offset, &asn1_ctx, tree, hf_e1ap_SecurityInformation_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_e1ap_TimeToWait(tvb, offset, &asn1_ctx, tree, hf_e1ap_TimeToWait_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UE_associatedLogicalE1_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_e1ap_UE_associatedLogicalE1_ConnectionItem(tvb, offset, &asn1_ctx, tree, hf_e1ap_UE_associatedLogicalE1_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_e1ap_Reset(tvb, offset, &asn1_ctx, tree, hf_e1ap_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_e1ap_ResetType(tvb, offset, &asn1_ctx, tree, hf_e1ap_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_e1ap_ResetAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e1ap_ResetAcknowledge_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_UE_associatedLogicalE1_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_e1ap_UE_associatedLogicalE1_ConnectionListResAck(tvb, offset, &asn1_ctx, tree, hf_e1ap_UE_associatedLogicalE1_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_e1ap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_e1ap_ErrorIndication_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_E1SetupRequest_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_e1ap_GNB_CU_UP_E1SetupRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_E1SetupRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SupportedPLMNs_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_e1ap_SupportedPLMNs_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_SupportedPLMNs_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SupportedPLMNs_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_SupportedPLMNs_Item(tvb, offset, &asn1_ctx, tree, hf_e1ap_SupportedPLMNs_Item_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_E1SetupResponse_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_e1ap_GNB_CU_UP_E1SetupResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_E1SetupResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_E1SetupFailure_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_e1ap_GNB_CU_UP_E1SetupFailure(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_E1SetupFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_E1SetupRequest_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_e1ap_GNB_CU_CP_E1SetupRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_E1SetupRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_E1SetupResponse_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_e1ap_GNB_CU_CP_E1SetupResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_E1SetupResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_E1SetupFailure_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_e1ap_GNB_CU_CP_E1SetupFailure(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_E1SetupFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_ConfigurationUpdate_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_e1ap_GNB_CU_UP_ConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_ConfigurationUpdate_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_ConfigurationUpdateAcknowledge_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_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_UP_ConfigurationUpdateFailure_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_e1ap_GNB_CU_UP_ConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_UP_ConfigurationUpdateFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_ConfigurationUpdate_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_e1ap_GNB_CU_CP_ConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_ConfigurationUpdate_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_ConfigurationUpdateAcknowledge_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_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_GNB_CU_CP_ConfigurationUpdateFailure_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_e1ap_GNB_CU_CP_ConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_e1ap_GNB_CU_CP_ConfigurationUpdateFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_E1ReleaseRequest_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_e1ap_E1ReleaseRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_E1ReleaseRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_E1ReleaseResponse_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_e1ap_E1ReleaseResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_E1ReleaseResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextSetupRequest_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_e1ap_BearerContextSetupRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextSetupRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_System_BearerContextSetupRequest_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_e1ap_System_BearerContextSetupRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_System_BearerContextSetupRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextSetupResponse_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_e1ap_BearerContextSetupResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextSetupResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_System_BearerContextSetupResponse_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_e1ap_System_BearerContextSetupResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_System_BearerContextSetupResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextSetupFailure_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_e1ap_BearerContextSetupFailure(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextSetupFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextModificationRequest_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_e1ap_BearerContextModificationRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextModificationRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_System_BearerContextModificationRequest_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_e1ap_System_BearerContextModificationRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_System_BearerContextModificationRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextModificationResponse_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_e1ap_BearerContextModificationResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextModificationResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_System_BearerContextModificationResponse_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_e1ap_System_BearerContextModificationResponse(tvb, offset, &asn1_ctx, tree, hf_e1ap_System_BearerContextModificationResponse_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextModificationFailure_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_e1ap_BearerContextModificationFailure(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextModificationFailure_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextModificationRequired_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_e1ap_BearerContextModificationRequired(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextModificationRequired_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_System_BearerContextModificationRequired_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_e1ap_System_BearerContextModificationRequired(tvb, offset, &asn1_ctx, tree, hf_e1ap_System_BearerContextModificationRequired_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextModificationConfirm_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_e1ap_BearerContextModificationConfirm(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextModificationConfirm_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_System_BearerContextModificationConfirm_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_e1ap_System_BearerContextModificationConfirm(tvb, offset, &asn1_ctx, tree, hf_e1ap_System_BearerContextModificationConfirm_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextReleaseCommand_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_e1ap_BearerContextReleaseCommand(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextReleaseCommand_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextReleaseComplete_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_e1ap_BearerContextReleaseComplete(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextReleaseComplete_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextReleaseRequest_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_e1ap_BearerContextReleaseRequest(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextReleaseRequest_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRB_Status_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_e1ap_DRB_Status_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_DRB_Status_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_BearerContextInactivityNotification_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_e1ap_BearerContextInactivityNotification(tvb, offset, &asn1_ctx, tree, hf_e1ap_BearerContextInactivityNotification_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DRB_Activity_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_e1ap_DRB_Activity_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_DRB_Activity_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DLDataNotification_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_e1ap_DLDataNotification(tvb, offset, &asn1_ctx, tree, hf_e1ap_DLDataNotification_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_DataUsageReport_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_e1ap_DataUsageReport(tvb, offset, &asn1_ctx, tree, hf_e1ap_DataUsageReport_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_e1ap_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_e1ap_PrivateMessage_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_E1AP_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_e1ap_E1AP_PDU(tvb, offset, &asn1_ctx, tree, hf_e1ap_E1AP_PDU_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+
+
+/*--- End of included file: packet-e1ap-fn.c ---*/
+#line 106 "./asn1/e1ap/packet-e1ap-template.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ e1ap_ctx_t e1ap_ctx;
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ e1ap_ctx.message_type = e1ap_data->message_type;
+ e1ap_ctx.ProcedureCode = e1ap_data->procedure_code;
+ e1ap_ctx.ProtocolIE_ID = e1ap_data->protocol_ie_id;
+ e1ap_ctx.ProtocolExtensionID = e1ap_data->protocol_extension_id;
+
+ return (dissector_try_uint_new(e1ap_ies_dissector_table, e1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+}
+
+//static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+//{
+// e1ap_ctx_t e1ap_ctx;
+// e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+//
+// e1ap_ctx.message_type = e1ap_data->message_type;
+// e1ap_ctx.ProcedureCode = e1ap_data->procedure_code;
+// e1ap_ctx.ProtocolIE_ID = e1ap_data->protocol_ie_id;
+// e1ap_ctx.ProtocolExtensionID = e1ap_data->protocol_extension_id;
+//
+// return (dissector_try_uint_new(e1ap_extension_dissector_table, e1ap_data->protocol_extension_id, tvb, pinfo, tree, FALSE, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+//}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(e1ap_proc_imsg_dissector_table, e1ap_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)
+{
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(e1ap_proc_sout_dissector_table, e1ap_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)
+{
+ e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
+
+ return (dissector_try_uint_new(e1ap_proc_uout_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+}
+
+
+static int
+dissect_e1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_item *e1ap_item = NULL;
+ proto_tree *e1ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "E1AP");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* create the e1ap protocol tree */
+ e1ap_item = proto_tree_add_item(tree, proto_e1ap, tvb, 0, -1, ENC_NA);
+ e1ap_tree = proto_item_add_subtree(e1ap_item, ett_e1ap);
+
+ dissect_E1AP_PDU_PDU(tvb, pinfo, e1ap_tree, NULL);
+ return tvb_captured_length(tvb);
+}
+
+void proto_register_e1ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+ { &hf_e1ap_transportLayerAddressIPv4,
+ { "IPv4 transportLayerAddress", "e1ap.transportLayerAddressIPv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_transportLayerAddressIPv6,
+ { "IPv6 transportLayerAddress", "e1ap.transportLayerAddressIPv6",
+ FT_IPv6, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+/*--- Included file: packet-e1ap-hfarr.c ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-hfarr.c"
+ { &hf_e1ap_BearerContextStatusChange_PDU,
+ { "BearerContextStatusChange", "e1ap.BearerContextStatusChange",
+ FT_UINT32, BASE_DEC, VALS(e1ap_BearerContextStatusChange_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BitRate_PDU,
+ { "BitRate", "e1ap.BitRate",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_Cause_PDU,
+ { "Cause", "e1ap.Cause",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Cause_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_CNSupport_PDU,
+ { "CNSupport", "e1ap.CNSupport",
+ FT_UINT32, BASE_DEC, VALS(e1ap_CNSupport_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_CriticalityDiagnostics_PDU,
+ { "CriticalityDiagnostics", "e1ap.CriticalityDiagnostics_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_Data_Usage_Report_List_PDU,
+ { "Data-Usage-Report-List", "e1ap.Data_Usage_Report_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Activity_Item_PDU,
+ { "DRB-Activity-Item", "e1ap.DRB_Activity_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Status_Item_PDU,
+ { "DRB-Status-Item", "e1ap.DRB_Status_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_Name_PDU,
+ { "GNB-CU-CP-Name", "e1ap.GNB_CU_CP_Name",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_UE_E1AP_ID_PDU,
+ { "GNB-CU-CP-UE-E1AP-ID", "e1ap.GNB_CU_CP_UE_E1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_ID_PDU,
+ { "GNB-CU-UP-ID", "e1ap.GNB_CU_UP_ID",
+ FT_UINT64, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_Name_PDU,
+ { "GNB-CU-UP-Name", "e1ap.GNB_CU_UP_Name",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_UE_E1AP_ID_PDU,
+ { "GNB-CU-UP-UE-E1AP-ID", "e1ap.GNB_CU_UP_UE_E1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_SecurityInformation_PDU,
+ { "SecurityInformation", "e1ap.SecurityInformation_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_TimeToWait_PDU,
+ { "TimeToWait", "e1ap.TimeToWait",
+ FT_UINT32, BASE_DEC, VALS(e1ap_TimeToWait_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_UE_associatedLogicalE1_ConnectionItem_PDU,
+ { "UE-associatedLogicalE1-ConnectionItem", "e1ap.UE_associatedLogicalE1_ConnectionItem_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_Reset_PDU,
+ { "Reset", "e1ap.Reset_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_ResetType_PDU,
+ { "ResetType", "e1ap.ResetType",
+ FT_UINT32, BASE_DEC, VALS(e1ap_ResetType_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_ResetAcknowledge_PDU,
+ { "ResetAcknowledge", "e1ap.ResetAcknowledge_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_UE_associatedLogicalE1_ConnectionListResAck_PDU,
+ { "UE-associatedLogicalE1-ConnectionListResAck", "e1ap.UE_associatedLogicalE1_ConnectionListResAck",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_ErrorIndication_PDU,
+ { "ErrorIndication", "e1ap.ErrorIndication_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_E1SetupRequest_PDU,
+ { "GNB-CU-UP-E1SetupRequest", "e1ap.GNB_CU_UP_E1SetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_SupportedPLMNs_List_PDU,
+ { "SupportedPLMNs-List", "e1ap.SupportedPLMNs_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_SupportedPLMNs_Item_PDU,
+ { "SupportedPLMNs-Item", "e1ap.SupportedPLMNs_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_E1SetupResponse_PDU,
+ { "GNB-CU-UP-E1SetupResponse", "e1ap.GNB_CU_UP_E1SetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_E1SetupFailure_PDU,
+ { "GNB-CU-UP-E1SetupFailure", "e1ap.GNB_CU_UP_E1SetupFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_E1SetupRequest_PDU,
+ { "GNB-CU-CP-E1SetupRequest", "e1ap.GNB_CU_CP_E1SetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_E1SetupResponse_PDU,
+ { "GNB-CU-CP-E1SetupResponse", "e1ap.GNB_CU_CP_E1SetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_E1SetupFailure_PDU,
+ { "GNB-CU-CP-E1SetupFailure", "e1ap.GNB_CU_CP_E1SetupFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_ConfigurationUpdate_PDU,
+ { "GNB-CU-UP-ConfigurationUpdate", "e1ap.GNB_CU_UP_ConfigurationUpdate_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge_PDU,
+ { "GNB-CU-UP-ConfigurationUpdateAcknowledge", "e1ap.GNB_CU_UP_ConfigurationUpdateAcknowledge_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_UP_ConfigurationUpdateFailure_PDU,
+ { "GNB-CU-UP-ConfigurationUpdateFailure", "e1ap.GNB_CU_UP_ConfigurationUpdateFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_ConfigurationUpdate_PDU,
+ { "GNB-CU-CP-ConfigurationUpdate", "e1ap.GNB_CU_CP_ConfigurationUpdate_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge_PDU,
+ { "GNB-CU-CP-ConfigurationUpdateAcknowledge", "e1ap.GNB_CU_CP_ConfigurationUpdateAcknowledge_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_GNB_CU_CP_ConfigurationUpdateFailure_PDU,
+ { "GNB-CU-CP-ConfigurationUpdateFailure", "e1ap.GNB_CU_CP_ConfigurationUpdateFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_E1ReleaseRequest_PDU,
+ { "E1ReleaseRequest", "e1ap.E1ReleaseRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_E1ReleaseResponse_PDU,
+ { "E1ReleaseResponse", "e1ap.E1ReleaseResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextSetupRequest_PDU,
+ { "BearerContextSetupRequest", "e1ap.BearerContextSetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_System_BearerContextSetupRequest_PDU,
+ { "System-BearerContextSetupRequest", "e1ap.System_BearerContextSetupRequest",
+ FT_UINT32, BASE_DEC, VALS(e1ap_System_BearerContextSetupRequest_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextSetupResponse_PDU,
+ { "BearerContextSetupResponse", "e1ap.BearerContextSetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_System_BearerContextSetupResponse_PDU,
+ { "System-BearerContextSetupResponse", "e1ap.System_BearerContextSetupResponse",
+ FT_UINT32, BASE_DEC, VALS(e1ap_System_BearerContextSetupResponse_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextSetupFailure_PDU,
+ { "BearerContextSetupFailure", "e1ap.BearerContextSetupFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextModificationRequest_PDU,
+ { "BearerContextModificationRequest", "e1ap.BearerContextModificationRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_System_BearerContextModificationRequest_PDU,
+ { "System-BearerContextModificationRequest", "e1ap.System_BearerContextModificationRequest",
+ FT_UINT32, BASE_DEC, VALS(e1ap_System_BearerContextModificationRequest_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextModificationResponse_PDU,
+ { "BearerContextModificationResponse", "e1ap.BearerContextModificationResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_System_BearerContextModificationResponse_PDU,
+ { "System-BearerContextModificationResponse", "e1ap.System_BearerContextModificationResponse",
+ FT_UINT32, BASE_DEC, VALS(e1ap_System_BearerContextModificationResponse_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextModificationFailure_PDU,
+ { "BearerContextModificationFailure", "e1ap.BearerContextModificationFailure_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextModificationRequired_PDU,
+ { "BearerContextModificationRequired", "e1ap.BearerContextModificationRequired_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_System_BearerContextModificationRequired_PDU,
+ { "System-BearerContextModificationRequired", "e1ap.System_BearerContextModificationRequired",
+ FT_UINT32, BASE_DEC, VALS(e1ap_System_BearerContextModificationRequired_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextModificationConfirm_PDU,
+ { "BearerContextModificationConfirm", "e1ap.BearerContextModificationConfirm_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_System_BearerContextModificationConfirm_PDU,
+ { "System-BearerContextModificationConfirm", "e1ap.System_BearerContextModificationConfirm",
+ FT_UINT32, BASE_DEC, VALS(e1ap_System_BearerContextModificationConfirm_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextReleaseCommand_PDU,
+ { "BearerContextReleaseCommand", "e1ap.BearerContextReleaseCommand_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextReleaseComplete_PDU,
+ { "BearerContextReleaseComplete", "e1ap.BearerContextReleaseComplete_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextReleaseRequest_PDU,
+ { "BearerContextReleaseRequest", "e1ap.BearerContextReleaseRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Status_List_PDU,
+ { "DRB-Status-List", "e1ap.DRB_Status_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_BearerContextInactivityNotification_PDU,
+ { "BearerContextInactivityNotification", "e1ap.BearerContextInactivityNotification_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Activity_List_PDU,
+ { "DRB-Activity-List", "e1ap.DRB_Activity_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DLDataNotification_PDU,
+ { "DLDataNotification", "e1ap.DLDataNotification_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DataUsageReport_PDU,
+ { "DataUsageReport", "e1ap.DataUsageReport_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PrivateMessage_PDU,
+ { "PrivateMessage", "e1ap.PrivateMessage_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_E1AP_PDU_PDU,
+ { "E1AP-PDU", "e1ap.E1AP_PDU",
+ FT_UINT32, BASE_DEC, VALS(e1ap_E1AP_PDU_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_local,
+ { "local", "e1ap.local",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_0_maxPrivateIEs", HFILL }},
+ { &hf_e1ap_global,
+ { "global", "e1ap.global",
+ FT_OID, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_ProtocolIE_Container_item,
+ { "ProtocolIE-Field", "e1ap.ProtocolIE_Field_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_id,
+ { "id", "e1ap.id",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e1ap_ProtocolIE_ID_vals_ext, 0,
+ "ProtocolIE_ID", HFILL }},
+ { &hf_e1ap_criticality,
+ { "criticality", "e1ap.criticality",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Criticality_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_ie_field_value,
+ { "value", "e1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "T_ie_field_value", HFILL }},
+ { &hf_e1ap_ProtocolExtensionContainer_item,
+ { "ProtocolExtensionField", "e1ap.ProtocolExtensionField_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_ext_id,
+ { "id", "e1ap.id",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e1ap_ProtocolIE_ID_vals_ext, 0,
+ "ProtocolIE_ID", HFILL }},
+ { &hf_e1ap_extensionValue,
+ { "extensionValue", "e1ap.extensionValue_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PrivateIE_Container_item,
+ { "PrivateIE-Field", "e1ap.PrivateIE_Field_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_private_id,
+ { "id", "e1ap.id",
+ FT_UINT32, BASE_DEC, VALS(e1ap_PrivateIE_ID_vals), 0,
+ "PrivateIE_ID", HFILL }},
+ { &hf_e1ap_value,
+ { "value", "e1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_radioNetwork,
+ { "radioNetwork", "e1ap.radioNetwork",
+ FT_UINT32, BASE_DEC, VALS(e1ap_CauseRadioNetwork_vals), 0,
+ "CauseRadioNetwork", HFILL }},
+ { &hf_e1ap_transport,
+ { "transport", "e1ap.transport",
+ FT_UINT32, BASE_DEC, VALS(e1ap_CauseTransport_vals), 0,
+ "CauseTransport", HFILL }},
+ { &hf_e1ap_protocol,
+ { "protocol", "e1ap.protocol",
+ FT_UINT32, BASE_DEC, VALS(e1ap_CauseProtocol_vals), 0,
+ "CauseProtocol", HFILL }},
+ { &hf_e1ap_misc,
+ { "misc", "e1ap.misc",
+ FT_UINT32, BASE_DEC, VALS(e1ap_CauseMisc_vals), 0,
+ "CauseMisc", HFILL }},
+ { &hf_e1ap_Cell_Group_Information_item,
+ { "Cell-Group-Information-Item", "e1ap.Cell_Group_Information_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_cell_Group_ID,
+ { "cell-Group-ID", "e1ap.cell_Group_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Cell_Gorup_ID", HFILL }},
+ { &hf_e1ap_uL_Configuration,
+ { "uL-Configuration", "e1ap.uL_Configuration",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UL_Configuration_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dL_TX_Stop,
+ { "dL-TX-Stop", "e1ap.dL_TX_Stop",
+ FT_UINT32, BASE_DEC, VALS(e1ap_DL_TX_Stop_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_rAT_Type,
+ { "rAT-Type", "e1ap.rAT_Type",
+ FT_UINT32, BASE_DEC, VALS(e1ap_RAT_Type_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_iE_Extensions,
+ { "iE-Extensions", "e1ap.iE_Extensions",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolExtensionContainer", HFILL }},
+ { &hf_e1ap_procedureCode,
+ { "procedureCode", "e1ap.procedureCode",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e1ap_ProcedureCode_vals_ext, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_triggeringMessage,
+ { "triggeringMessage", "e1ap.triggeringMessage",
+ FT_UINT32, BASE_DEC, VALS(e1ap_TriggeringMessage_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_procedureCriticality,
+ { "procedureCriticality", "e1ap.procedureCriticality",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Criticality_vals), 0,
+ "Criticality", HFILL }},
+ { &hf_e1ap_iEsCriticalityDiagnostics,
+ { "iEsCriticalityDiagnostics", "e1ap.iEsCriticalityDiagnostics",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CriticalityDiagnostics_IE_List", HFILL }},
+ { &hf_e1ap_CriticalityDiagnostics_IE_List_item,
+ { "CriticalityDiagnostics-IE-List item", "e1ap.CriticalityDiagnostics_IE_List_item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_iECriticality,
+ { "iECriticality", "e1ap.iECriticality",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Criticality_vals), 0,
+ "Criticality", HFILL }},
+ { &hf_e1ap_iE_ID,
+ { "iE-ID", "e1ap.iE_ID",
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &e1ap_ProtocolIE_ID_vals_ext, 0,
+ "ProtocolIE_ID", HFILL }},
+ { &hf_e1ap_typeOfError,
+ { "typeOfError", "e1ap.typeOfError",
+ FT_UINT32, BASE_DEC, VALS(e1ap_TypeOfError_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_data_Forwarding_Request,
+ { "data-Forwarding-Request", "e1ap.data_Forwarding_Request",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Data_Forwarding_Request_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_uL_Data_Forwarding,
+ { "uL-Data-Forwarding", "e1ap.uL_Data_Forwarding",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ "UP_TNL_Information", HFILL }},
+ { &hf_e1ap_dL_Data_Forwarding,
+ { "dL-Data-Forwarding", "e1ap.dL_Data_Forwarding",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ "UP_TNL_Information", HFILL }},
+ { &hf_e1ap_Data_Usage_Report_List_item,
+ { "Data-Usage-Report-Item", "e1ap.Data_Usage_Report_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_ID,
+ { "dRB-ID", "e1ap.dRB_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Usage_Report_List,
+ { "dRB-Usage-Report-List", "e1ap.dRB_Usage_Report_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Activity,
+ { "dRB-Activity", "e1ap.dRB_Activity",
+ FT_UINT32, BASE_DEC, VALS(e1ap_DRB_Acivity_vals), 0,
+ "DRB_Acivity", HFILL }},
+ { &hf_e1ap_DRB_Confirm_Modified_List_EUTRAN_item,
+ { "DRB-Confirm-Modified-Item-EUTRAN", "e1ap.DRB_Confirm_Modified_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_cell_Group_Information,
+ { "cell-Group-Information", "e1ap.cell_Group_Information",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Confirm_Modified_List_NG_RAN_item,
+ { "DRB-Confirm-Modified-Item-NG-RAN", "e1ap.DRB_Confirm_Modified_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Failed_List_EUTRAN_item,
+ { "DRB-Failed-Item-EUTRAN", "e1ap.DRB_Failed_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_cause,
+ { "cause", "e1ap.cause",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Cause_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Failed_List_NG_RAN_item,
+ { "DRB-Failed-Item-NG-RAN", "e1ap.DRB_Failed_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Failed_To_Modify_List_EUTRAN_item,
+ { "DRB-Failed-To-Modify-Item-EUTRAN", "e1ap.DRB_Failed_To_Modify_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Failed_To_Modify_List_NG_RAN_item,
+ { "DRB-Failed-To-Modify-Item-NG-RAN", "e1ap.DRB_Failed_To_Modify_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Modified_List_EUTRAN_item,
+ { "DRB-Modified-Item-EUTRAN", "e1ap.DRB_Modified_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDCP_UL_Count,
+ { "pDCP-UL-Count", "e1ap.pDCP_UL_Count_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PDCP_Count", HFILL }},
+ { &hf_e1ap_pDCP_DL_Count,
+ { "pDCP-DL-Count", "e1ap.pDCP_DL_Count_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PDCP_Count", HFILL }},
+ { &hf_e1ap_uL_UP_Transport_Parameters,
+ { "uL-UP-Transport-Parameters", "e1ap.uL_UP_Transport_Parameters",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "UP_Parameters", HFILL }},
+ { &hf_e1ap_DRB_Modified_List_NG_RAN_item,
+ { "DRB-Modified-Item-NG-RAN", "e1ap.DRB_Modified_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_flow_Setup_List,
+ { "flow-Setup-List", "e1ap.flow_Setup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "QoS_Flow_List", HFILL }},
+ { &hf_e1ap_flow_Failed_List,
+ { "flow-Failed-List", "e1ap.flow_Failed_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "QoS_Flow_Failed_List", HFILL }},
+ { &hf_e1ap_DRB_Required_To_Modify_List_EUTRAN_item,
+ { "DRB-Required-To-Modify-Item-EUTRAN", "e1ap.DRB_Required_To_Modify_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_s1_DL_UP_TNL_Information,
+ { "s1-DL-UP-TNL-Information", "e1ap.s1_DL_UP_TNL_Information",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ "UP_TNL_Information", HFILL }},
+ { &hf_e1ap_data_Forwarding_Information_Response,
+ { "data-Forwarding-Information-Response", "e1ap.data_Forwarding_Information_Response_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_gNB_CU_UP_CellGroupRelatedConfiguration,
+ { "gNB-CU-UP-CellGroupRelatedConfiguration", "e1ap.gNB_CU_UP_CellGroupRelatedConfiguration",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Required_To_Modify_List_NG_RAN_item,
+ { "DRB-Required-To-Modify-Item-NG-RAN", "e1ap.DRB_Required_To_Modify_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_flow_To_Remove,
+ { "flow-To-Remove", "e1ap.flow_To_Remove",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "QoS_Flow_List", HFILL }},
+ { &hf_e1ap_DRB_Setup_List_EUTRAN_item,
+ { "DRB-Setup-Item-EUTRAN", "e1ap.DRB_Setup_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Setup_List_NG_RAN_item,
+ { "DRB-Setup-Item-NG-RAN", "e1ap.DRB_Setup_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_data_Forwarding_Information_Response,
+ { "dRB-data-Forwarding-Information-Response", "e1ap.dRB_data_Forwarding_Information_Response_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Data_Forwarding_Information_Response", HFILL }},
+ { &hf_e1ap_DRB_To_Modify_List_EUTRAN_item,
+ { "DRB-To-Modify-Item-EUTRAN", "e1ap.DRB_To_Modify_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDCP_Configuration,
+ { "pDCP-Configuration", "e1ap.pDCP_Configuration_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_eUTRAN_QoS,
+ { "eUTRAN-QoS", "e1ap.eUTRAN_QoS_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_s1_UL_UP_TNL_Information,
+ { "s1-UL-UP-TNL-Information", "e1ap.s1_UL_UP_TNL_Information",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ "UP_TNL_Information", HFILL }},
+ { &hf_e1ap_data_Forwarding_Information_Request,
+ { "data-Forwarding-Information-Request", "e1ap.data_Forwarding_Information_Request_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDCP_Count_Request,
+ { "pDCP-Count-Request", "e1ap.pDCP_Count_Request",
+ FT_UINT32, BASE_DEC, VALS(e1ap_PDCP_Count_Request_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dL_UP_Parameters,
+ { "dL-UP-Parameters", "e1ap.dL_UP_Parameters",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "UP_Parameters", HFILL }},
+ { &hf_e1ap_cell_Group_To_Add,
+ { "cell-Group-To-Add", "e1ap.cell_Group_To_Add",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Cell_Group_Information", HFILL }},
+ { &hf_e1ap_cell_Group_To_Modify,
+ { "cell-Group-To-Modify", "e1ap.cell_Group_To_Modify",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Cell_Group_Information", HFILL }},
+ { &hf_e1ap_cell_Group_To_Remove,
+ { "cell-Group-To-Remove", "e1ap.cell_Group_To_Remove",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Cell_Group_Information", HFILL }},
+ { &hf_e1ap_DRB_To_Modify_List_NG_RAN_item,
+ { "DRB-To-Modify-Item-NG-RAN", "e1ap.DRB_To_Modify_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_sDAP_Configuration,
+ { "sDAP-Configuration", "e1ap.sDAP_Configuration_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Data_Forwarding_Information_Request,
+ { "dRB-Data-Forwarding-Information-Request", "e1ap.dRB_Data_Forwarding_Information_Request_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Data_Forwarding_Information_Request", HFILL }},
+ { &hf_e1ap_flow_Mapping_Information,
+ { "flow-Mapping-Information", "e1ap.flow_Mapping_Information",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "QoS_Flow_QoS_Parameter_List", HFILL }},
+ { &hf_e1ap_DRB_To_Remove_List_EUTRAN_item,
+ { "DRB-To-Remove-Item-EUTRAN", "e1ap.DRB_To_Remove_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_To_Remove_List_NG_RAN_item,
+ { "DRB-To-Remove-Item-NG-RAN", "e1ap.DRB_To_Remove_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_To_Setup_List_EUTRAN_item,
+ { "DRB-To-Setup-Item-EUTRAN", "e1ap.DRB_To_Setup_Item_EUTRAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_To_Setup_List_NG_RAN_item,
+ { "DRB-To-Setup-Item-NG-RAN", "e1ap.DRB_To_Setup_Item_NG_RAN_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Usage_Report_List_item,
+ { "DRB-Usage-Report-Item", "e1ap.DRB_Usage_Report_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_startTimeStamp,
+ { "startTimeStamp", "e1ap.startTimeStamp",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_endTimeStamp,
+ { "endTimeStamp", "e1ap.endTimeStamp",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_usageCountUL,
+ { "usageCountUL", "e1ap.usageCountUL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0,
+ "INTEGER_0_18446744073709551615", HFILL }},
+ { &hf_e1ap_usageCountDL,
+ { "usageCountDL", "e1ap.usageCountDL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0,
+ "INTEGER_0_18446744073709551615", HFILL }},
+ { &hf_e1ap_qoSPriorityLevel,
+ { "qoSPriorityLevel", "e1ap.qoSPriorityLevel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_1_127", HFILL }},
+ { &hf_e1ap_packetDelayBudget,
+ { "packetDelayBudget", "e1ap.packetDelayBudget",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_packetErrorRate,
+ { "packetErrorRate", "e1ap.packetErrorRate",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_delayCritical,
+ { "delayCritical", "e1ap.delayCritical",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_delayCritical_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_averagingWindow,
+ { "averagingWindow", "e1ap.averagingWindow",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_maxDataBurstVolume,
+ { "maxDataBurstVolume", "e1ap.maxDataBurstVolume",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_priorityLevel,
+ { "priorityLevel", "e1ap.priorityLevel",
+ FT_UINT32, BASE_DEC, VALS(e1ap_PriorityLevel_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pre_emptionCapability,
+ { "pre-emptionCapability", "e1ap.pre_emptionCapability",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Pre_emptionCapability_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pre_emptionVulnerability,
+ { "pre-emptionVulnerability", "e1ap.pre_emptionVulnerability",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Pre_emptionVulnerability_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_EUTRAN_QoS_Support_List_item,
+ { "EUTRAN-QoS-Support-Item", "e1ap.EUTRAN_QoS_Support_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_qCI,
+ { "qCI", "e1ap.qCI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_eUTRANallocationAndRetentionPriority,
+ { "eUTRANallocationAndRetentionPriority", "e1ap.eUTRANallocationAndRetentionPriority_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_gbrQosInformation,
+ { "gbrQosInformation", "e1ap.gbrQosInformation_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GBR_QosInformation", HFILL }},
+ { &hf_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_item,
+ { "GNB-CU-UP-CellGroupRelatedConfiguration-Item", "e1ap.GNB_CU_UP_CellGroupRelatedConfiguration_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_uP_TNL_Information,
+ { "uP-TNL-Information", "e1ap.uP_TNL_Information",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_RAB_MaximumBitrateDL,
+ { "e-RAB-MaximumBitrateDL", "e1ap.e_RAB_MaximumBitrateDL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_e_RAB_MaximumBitrateUL,
+ { "e-RAB-MaximumBitrateUL", "e1ap.e_RAB_MaximumBitrateUL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_e_RAB_GuaranteedBitrateDL,
+ { "e-RAB-GuaranteedBitrateDL", "e1ap.e_RAB_GuaranteedBitrateDL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_e_RAB_GuaranteedBitrateUL,
+ { "e-RAB-GuaranteedBitrateUL", "e1ap.e_RAB_GuaranteedBitrateUL",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_maxFlowBitRateDownlink,
+ { "maxFlowBitRateDownlink", "e1ap.maxFlowBitRateDownlink",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_maxFlowBitRateUplink,
+ { "maxFlowBitRateUplink", "e1ap.maxFlowBitRateUplink",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_guaranteedFlowBitRateDownlink,
+ { "guaranteedFlowBitRateDownlink", "e1ap.guaranteedFlowBitRateDownlink",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_guaranteedFlowBitRateUplink,
+ { "guaranteedFlowBitRateUplink", "e1ap.guaranteedFlowBitRateUplink",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_notificationControl,
+ { "notificationControl", "e1ap.notificationControl",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_notificationControl_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_maxPacketLossRateDownlink,
+ { "maxPacketLossRateDownlink", "e1ap.maxPacketLossRateDownlink",
+ FT_UINT32, BASE_CUSTOM, CF_FUNC(e1ap_MaxPacketLossRate_fmt), 0,
+ "MaxPacketLossRate", HFILL }},
+ { &hf_e1ap_maxPacketLossRateUplink,
+ { "maxPacketLossRateUplink", "e1ap.maxPacketLossRateUplink",
+ FT_UINT32, BASE_CUSTOM, CF_FUNC(e1ap_MaxPacketLossRate_fmt), 0,
+ "MaxPacketLossRate", HFILL }},
+ { &hf_e1ap_transportLayerAddress,
+ { "transportLayerAddress", "e1ap.transportLayerAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_gTP_TEID,
+ { "gTP-TEID", "e1ap.gTP_TEID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_NG_RAN_QoS_Support_List_item,
+ { "NG-RAN-QoS-Support-Item", "e1ap.NG_RAN_QoS_Support_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_non_Dynamic5QIDescriptor,
+ { "non-Dynamic5QIDescriptor", "e1ap.non_Dynamic5QIDescriptor_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_fiveQI,
+ { "fiveQI", "e1ap.fiveQI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_0_255_", HFILL }},
+ { &hf_e1ap_qoSPriorityLevel_01,
+ { "qoSPriorityLevel", "e1ap.qoSPriorityLevel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_1_127_", HFILL }},
+ { &hf_e1ap_pLMN_Identity,
+ { "pLMN-Identity", "e1ap.pLMN_Identity",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_nR_Cell_Identity,
+ { "nR-Cell-Identity", "e1ap.nR_Cell_Identity",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_NR_CGI_Support_List_item,
+ { "NR-CGI-Support-Item", "e1ap.NR_CGI_Support_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_nR_CGI,
+ { "nR-CGI", "e1ap.nR_CGI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDCP_SN_Size,
+ { "pDCP-SN-Size", "e1ap.pDCP_SN_Size",
+ FT_UINT32, BASE_DEC, VALS(e1ap_PDCP_SN_Size_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_rLC_Mode,
+ { "rLC-Mode", "e1ap.rLC_Mode",
+ FT_UINT32, BASE_DEC, VALS(e1ap_RLC_Mode_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_rOHC_Parameters,
+ { "rOHC-Parameters", "e1ap.rOHC_Parameters_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_t_ReorderingTimer,
+ { "t-ReorderingTimer", "e1ap.t_ReorderingTimer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_discardTimer,
+ { "discardTimer", "e1ap.discardTimer",
+ FT_UINT32, BASE_DEC, VALS(e1ap_DiscardTimer_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_uLDataSplitThreshold,
+ { "uLDataSplitThreshold", "e1ap.uLDataSplitThreshold",
+ FT_UINT32, BASE_DEC, VALS(e1ap_ULDataSplitThreshold_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDCP_Duplication,
+ { "pDCP-Duplication", "e1ap.pDCP_Duplication",
+ FT_UINT32, BASE_DEC, VALS(e1ap_PDCP_Duplication_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDCP_SN,
+ { "pDCP-SN", "e1ap.pDCP_SN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_hFN,
+ { "hFN", "e1ap.hFN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_Confirm_Modified_List_item,
+ { "PDU-Session-Resource-Confirm-Modified-Item", "e1ap.PDU_Session_Resource_Confirm_Modified_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_ID,
+ { "pDU-Session-ID", "e1ap.pDU_Session_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Confirm_Modified_List_NG_RAN,
+ { "dRB-Confirm-Modified-List-NG-RAN", "e1ap.dRB_Confirm_Modified_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_Failed_List_item,
+ { "PDU-Session-Resource-Failed-Item", "e1ap.PDU_Session_Resource_Failed_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_casue,
+ { "casue", "e1ap.casue",
+ FT_UINT32, BASE_DEC, VALS(e1ap_Cause_vals), 0,
+ "Cause", HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_Failed_To_Modify_List_item,
+ { "PDU-Session-Resource-Failed-To-Modify-Item", "e1ap.PDU_Session_Resource_Failed_To_Modify_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_Modified_List_item,
+ { "PDU-Session-Resource-Modified-Item", "e1ap.PDU_Session_Resource_Modified_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Setup_List_NG_RAN,
+ { "dRB-Setup-List-NG-RAN", "e1ap.dRB_Setup_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Failed_List_NG_RAN,
+ { "dRB-Failed-List-NG-RAN", "e1ap.dRB_Failed_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Modified_List_NG_RAN,
+ { "dRB-Modified-List-NG-RAN", "e1ap.dRB_Modified_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Failed_To_Modify_List_NG_RAN,
+ { "dRB-Failed-To-Modify-List-NG-RAN", "e1ap.dRB_Failed_To_Modify_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_To_Remove_List_NG_RAN,
+ { "dRB-To-Remove-List-NG-RAN", "e1ap.dRB_To_Remove_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_Required_To_Modify_List_item,
+ { "PDU-Session-Resource-Required-To-Modify-Item", "e1ap.PDU_Session_Resource_Required_To_Modify_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_nG_DL_UP_TNL_Information,
+ { "nG-DL-UP-TNL-Information", "e1ap.nG_DL_UP_TNL_Information",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ "UP_TNL_Information", HFILL }},
+ { &hf_e1ap_pDU_Session_Data_Forwarding_Information_Response,
+ { "pDU-Session-Data-Forwarding-Information-Response", "e1ap.pDU_Session_Data_Forwarding_Information_Response_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Data_Forwarding_Information_Response", HFILL }},
+ { &hf_e1ap_dRB_Required_To_Modify_List_NG_RAN,
+ { "dRB-Required-To-Modify-List-NG-RAN", "e1ap.dRB_Required_To_Modify_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_Setup_List_item,
+ { "PDU-Session-Resource-Setup-Item", "e1ap.PDU_Session_Resource_Setup_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_To_Modify_List_item,
+ { "PDU-Session-Resource-To-Modify-Item", "e1ap.PDU_Session_Resource_To_Modify_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Type,
+ { "pDU-Session-Type", "e1ap.pDU_Session_Type",
+ FT_UINT32, BASE_DEC, VALS(e1ap_PDU_Session_Type_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_sNSSAI,
+ { "sNSSAI", "e1ap.sNSSAI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_securityIndication,
+ { "securityIndication", "e1ap.securityIndication_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_AMBR,
+ { "pDU-Session-Resource-AMBR", "e1ap.pDU_Session_Resource_AMBR",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ "BitRate", HFILL }},
+ { &hf_e1ap_nG_UL_UP_TNL_Information,
+ { "nG-UL-UP-TNL-Information", "e1ap.nG_UL_UP_TNL_Information",
+ FT_UINT32, BASE_DEC, VALS(e1ap_UP_TNL_Information_vals), 0,
+ "UP_TNL_Information", HFILL }},
+ { &hf_e1ap_pDU_Session_Data_Forwarding_Information_Request,
+ { "pDU-Session-Data-Forwarding-Information-Request", "e1ap.pDU_Session_Data_Forwarding_Information_Request_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Data_Forwarding_Information_Request", HFILL }},
+ { &hf_e1ap_dRB_To_Setup_List_NG_RAN,
+ { "dRB-To-Setup-List-NG-RAN", "e1ap.dRB_To_Setup_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_To_Modify_List_NG_RAN,
+ { "dRB-To-Modify-List-NG-RAN", "e1ap.dRB_To_Modify_List_NG_RAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_To_Remove_List_item,
+ { "PDU-Session-Resource-To-Remove-Item", "e1ap.PDU_Session_Resource_To_Remove_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_PDU_Session_Resource_To_Setup_List_item,
+ { "PDU-Session-Resource-To-Setup-Item", "e1ap.PDU_Session_Resource_To_Setup_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_non_Dynamic_5QI,
+ { "non-Dynamic-5QI", "e1ap.non_Dynamic_5QI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Non_Dynamic5QIDescriptor", HFILL }},
+ { &hf_e1ap_dynamic_5QI,
+ { "dynamic-5QI", "e1ap.dynamic_5QI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dynamic5QIDescriptor", HFILL }},
+ { &hf_e1ap_QoS_Flow_List_item,
+ { "QoS-Flow-Item", "e1ap.QoS_Flow_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_qoS_Flow_Indicator,
+ { "qoS-Flow-Indicator", "e1ap.qoS_Flow_Indicator",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_QoS_Flow_Failed_List_item,
+ { "QoS-Flow-Failed-Item", "e1ap.QoS_Flow_Failed_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_eUTRAN_QoS_Support_List,
+ { "eUTRAN-QoS-Support-List", "e1ap.eUTRAN_QoS_Support_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_nG_RAN_QoS_Support_List,
+ { "nG-RAN-QoS-Support-List", "e1ap.nG_RAN_QoS_Support_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_QoS_Flow_QoS_Parameter_List_item,
+ { "QoS-Flow-QoS-Parameter-Item", "e1ap.QoS_Flow_QoS_Parameter_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_qoSFlowLevelQoSParameters,
+ { "qoSFlowLevelQoSParameters", "e1ap.qoSFlowLevelQoSParameters_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_qoS_Characteristics,
+ { "qoS-Characteristics", "e1ap.qoS_Characteristics",
+ FT_UINT32, BASE_DEC, VALS(e1ap_QoS_Characteristics_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_nGRANallocationRetentionPriority,
+ { "nGRANallocationRetentionPriority", "e1ap.nGRANallocationRetentionPriority_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "NGRANAllocationAndRetentionPriority", HFILL }},
+ { &hf_e1ap_gBR_QoS_Flow_Information,
+ { "gBR-QoS-Flow-Information", "e1ap.gBR_QoS_Flow_Information_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GBR_QoSFlowInformation", HFILL }},
+ { &hf_e1ap_reflective_QoS_Attribute,
+ { "reflective-QoS-Attribute", "e1ap.reflective_QoS_Attribute",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_reflective_QoS_Attribute_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_additional_QoS_Information,
+ { "additional-QoS-Information", "e1ap.additional_QoS_Information",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_additional_QoS_Information_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_paging_Policy_Indicator,
+ { "paging-Policy-Indicator", "e1ap.paging_Policy_Indicator",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_1_8_", HFILL }},
+ { &hf_e1ap_reflective_QoS_Indicator,
+ { "reflective-QoS-Indicator", "e1ap.reflective_QoS_Indicator",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_reflective_QoS_Indicator_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_rOHC_Profiles,
+ { "rOHC-Profiles", "e1ap.rOHC_Profiles",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_cipheringAlgorithm,
+ { "cipheringAlgorithm", "e1ap.cipheringAlgorithm",
+ FT_UINT32, BASE_DEC, VALS(e1ap_CipheringAlgorithm_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_integrityProtectionAlgorithm,
+ { "integrityProtectionAlgorithm", "e1ap.integrityProtectionAlgorithm",
+ FT_UINT32, BASE_DEC, VALS(e1ap_IntegrityProtectionAlgorithm_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_integrityProtectionIndication,
+ { "integrityProtectionIndication", "e1ap.integrityProtectionIndication",
+ FT_UINT32, BASE_DEC, VALS(e1ap_IntegrityProtectionIndication_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_confidentialityProtectionIndication,
+ { "confidentialityProtectionIndication", "e1ap.confidentialityProtectionIndication",
+ FT_UINT32, BASE_DEC, VALS(e1ap_ConfidentialityProtectionIndication_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_securityAlgorithm,
+ { "securityAlgorithm", "e1ap.securityAlgorithm_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_uPSecuritykey,
+ { "uPSecuritykey", "e1ap.uPSecuritykey_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_Slice_Support_List_item,
+ { "Slice-Support-Item", "e1ap.Slice_Support_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_sST,
+ { "sST", "e1ap.sST",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1", HFILL }},
+ { &hf_e1ap_sD,
+ { "sD", "e1ap.sD",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_3", HFILL }},
+ { &hf_e1ap_defaultDRB,
+ { "defaultDRB", "e1ap.defaultDRB",
+ FT_UINT32, BASE_DEC, VALS(e1ap_DefaultDRB_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_sDAP_Header_UL,
+ { "sDAP-Header-UL", "e1ap.sDAP_Header_UL",
+ FT_UINT32, BASE_DEC, VALS(e1ap_SDAP_Header_UL_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_sDAP_Header_DL,
+ { "sDAP-Header-DL", "e1ap.sDAP_Header_DL",
+ FT_UINT32, BASE_DEC, VALS(e1ap_SDAP_Header_DL_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_t_ReorderingUL,
+ { "t-ReorderingUL", "e1ap.t_ReorderingUL",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_ReorderingUL_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_t_ReorderingDL,
+ { "t-ReorderingDL", "e1ap.t_ReorderingDL",
+ FT_UINT32, BASE_DEC, VALS(e1ap_T_ReorderingDL_vals), 0,
+ NULL, HFILL }},
+ { &hf_e1ap_gNB_CU_CP_UE_E1AP_ID,
+ { "gNB-CU-CP-UE-E1AP-ID", "e1ap.gNB_CU_CP_UE_E1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_gNB_CU_UP_UE_E1AP_ID,
+ { "gNB-CU-UP-UE-E1AP-ID", "e1ap.gNB_CU_UP_UE_E1AP_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_UP_Parameters_item,
+ { "UP-Parameters-Item", "e1ap.UP_Parameters_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_encryptionKey,
+ { "encryptionKey", "e1ap.encryptionKey",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_integrityProtectionKey,
+ { "integrityProtectionKey", "e1ap.integrityProtectionKey",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_gTPTunnel,
+ { "gTPTunnel", "e1ap.gTPTunnel_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_protocolIEs,
+ { "protocolIEs", "e1ap.protocolIEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE_Container", HFILL }},
+ { &hf_e1ap_e1_Interface,
+ { "e1-Interface", "e1ap.e1_Interface",
+ FT_UINT32, BASE_DEC, VALS(e1ap_ResetAll_vals), 0,
+ "ResetAll", HFILL }},
+ { &hf_e1ap_partOfE1_Interface,
+ { "partOfE1-Interface", "e1ap.partOfE1_Interface",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "UE_associatedLogicalE1_ConnectionListRes", HFILL }},
+ { &hf_e1ap_UE_associatedLogicalE1_ConnectionListRes_item,
+ { "ProtocolIE-SingleContainer", "e1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_UE_associatedLogicalE1_ConnectionListResAck_item,
+ { "ProtocolIE-SingleContainer", "e1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_SupportedPLMNs_List_item,
+ { "ProtocolIE-SingleContainer", "e1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_slice_Support_List,
+ { "slice-Support-List", "e1ap.slice_Support_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_nR_CGI_Support_List,
+ { "nR-CGI-Support-List", "e1ap.nR_CGI_Support_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_qoS_Parameters_Support_List,
+ { "qoS-Parameters-Support-List", "e1ap.qoS_Parameters_Support_List_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_UTRAN_BearerContextSetupRequest,
+ { "e-UTRAN-BearerContextSetupRequest", "e1ap.e_UTRAN_BearerContextSetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EUTRAN_BearerContextSetupRequest", HFILL }},
+ { &hf_e1ap_nG_RAN_BearerContextSetupRequest,
+ { "nG-RAN-BearerContextSetupRequest", "e1ap.nG_RAN_BearerContextSetupRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_To_Setup_List_EUTRAN,
+ { "dRB-To-Setup-List-EUTRAN", "e1ap.dRB_To_Setup_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_To_Setup_List,
+ { "pDU-Session-Resource-To-Setup-List", "e1ap.pDU_Session_Resource_To_Setup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_UTRAN_BearerContextSetupResponse,
+ { "e-UTRAN-BearerContextSetupResponse", "e1ap.e_UTRAN_BearerContextSetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EUTRAN_BearerContextSetupResponse", HFILL }},
+ { &hf_e1ap_nG_RAN_BearerContextSetupResponse,
+ { "nG-RAN-BearerContextSetupResponse", "e1ap.nG_RAN_BearerContextSetupResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Setup_List_EUTRAN,
+ { "dRB-Setup-List-EUTRAN", "e1ap.dRB_Setup_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Failed_List_EUTRAN,
+ { "dRB-Failed-List-EUTRAN", "e1ap.dRB_Failed_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_Setup_List,
+ { "pDU-Session-Resource-Setup-List", "e1ap.pDU_Session_Resource_Setup_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_Failed_List,
+ { "pDU-Session-Resource-Failed-List", "e1ap.pDU_Session_Resource_Failed_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_UTRAN_BearerContextModificationRequest,
+ { "e-UTRAN-BearerContextModificationRequest", "e1ap.e_UTRAN_BearerContextModificationRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EUTRAN_BearerContextModificationRequest", HFILL }},
+ { &hf_e1ap_nG_RAN_BearerContextModificationRequest,
+ { "nG-RAN-BearerContextModificationRequest", "e1ap.nG_RAN_BearerContextModificationRequest_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_To_Modify_List_EUTRAN,
+ { "dRB-To-Modify-List-EUTRAN", "e1ap.dRB_To_Modify_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_To_Remove_List_EUTRAN,
+ { "dRB-To-Remove-List-EUTRAN", "e1ap.dRB_To_Remove_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_To_Modify_List,
+ { "pDU-Session-Resource-To-Modify-List", "e1ap.pDU_Session_Resource_To_Modify_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_To_Remove_List,
+ { "pDU-Session-Resource-To-Remove-List", "e1ap.pDU_Session_Resource_To_Remove_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_UTRAN_BearerContextModificationResponse,
+ { "e-UTRAN-BearerContextModificationResponse", "e1ap.e_UTRAN_BearerContextModificationResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EUTRAN_BearerContextModificationResponse", HFILL }},
+ { &hf_e1ap_nG_RAN_BearerContextModificationResponse,
+ { "nG-RAN-BearerContextModificationResponse", "e1ap.nG_RAN_BearerContextModificationResponse_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Modified_List_EUTRAN,
+ { "dRB-Modified-List-EUTRAN", "e1ap.dRB_Modified_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Failed_To_Modify_List_EUTRAN,
+ { "dRB-Failed-To-Modify-List-EUTRAN", "e1ap.dRB_Failed_To_Modify_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_Modified_List,
+ { "pDU-Session-Resource-Modified-List", "e1ap.pDU_Session_Resource_Modified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_Failed_To_Modify_List,
+ { "pDU-Session-Resource-Failed-To-Modify-List", "e1ap.pDU_Session_Resource_Failed_To_Modify_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_UTRAN_BearerContextModificationRequired,
+ { "e-UTRAN-BearerContextModificationRequired", "e1ap.e_UTRAN_BearerContextModificationRequired_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EUTRAN_BearerContextModificationRequired", HFILL }},
+ { &hf_e1ap_nG_RAN_BearerContextModificationRequired,
+ { "nG-RAN-BearerContextModificationRequired", "e1ap.nG_RAN_BearerContextModificationRequired_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Required_To_Modify_List_EUTRAN,
+ { "dRB-Required-To-Modify-List-EUTRAN", "e1ap.dRB_Required_To_Modify_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_Required_To_Modify_List,
+ { "pDU-Session-Resource-Required-To-Modify-List", "e1ap.pDU_Session_Resource_Required_To_Modify_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_e_UTRAN_BearerContextModificationConfirm,
+ { "e-UTRAN-BearerContextModificationConfirm", "e1ap.e_UTRAN_BearerContextModificationConfirm_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EUTRAN_BearerContextModificationConfirm", HFILL }},
+ { &hf_e1ap_nG_RAN_BearerContextModificationConfirm,
+ { "nG-RAN-BearerContextModificationConfirm", "e1ap.nG_RAN_BearerContextModificationConfirm_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_dRB_Confirm_Modified_List_EUTRAN,
+ { "dRB-Confirm-Modified-List-EUTRAN", "e1ap.dRB_Confirm_Modified_List_EUTRAN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_pDU_Session_Resource_Confirm_Modified_List,
+ { "pDU-Session-Resource-Confirm-Modified-List", "e1ap.pDU_Session_Resource_Confirm_Modified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Status_List_item,
+ { "ProtocolIE-SingleContainer", "e1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_DRB_Activity_List_item,
+ { "ProtocolIE-SingleContainer", "e1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_privateIEs,
+ { "privateIEs", "e1ap.privateIEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PrivateIE_Container", HFILL }},
+ { &hf_e1ap_initiatingMessage,
+ { "initiatingMessage", "e1ap.initiatingMessage_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_successfulOutcome,
+ { "successfulOutcome", "e1ap.successfulOutcome_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_unsuccessfulOutcome,
+ { "unsuccessfulOutcome", "e1ap.unsuccessfulOutcome_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_initiatingMessagevalue,
+ { "value", "e1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InitiatingMessage_value", HFILL }},
+ { &hf_e1ap_successfulOutcome_value,
+ { "value", "e1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SuccessfulOutcome_value", HFILL }},
+ { &hf_e1ap_unsuccessfulOutcome_value,
+ { "value", "e1ap.value_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "UnsuccessfulOutcome_value", HFILL }},
+
+/*--- End of included file: packet-e1ap-hfarr.c ---*/
+#line 187 "./asn1/e1ap/packet-e1ap-template.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_e1ap,
+ &ett_e1ap_PLMN_Identity,
+ &ett_e1ap_TransportLayerAddress,
+
+/*--- Included file: packet-e1ap-ettarr.c ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-ettarr.c"
+ &ett_e1ap_PrivateIE_ID,
+ &ett_e1ap_ProtocolIE_Container,
+ &ett_e1ap_ProtocolIE_Field,
+ &ett_e1ap_ProtocolExtensionContainer,
+ &ett_e1ap_ProtocolExtensionField,
+ &ett_e1ap_PrivateIE_Container,
+ &ett_e1ap_PrivateIE_Field,
+ &ett_e1ap_Cause,
+ &ett_e1ap_Cell_Group_Information,
+ &ett_e1ap_Cell_Group_Information_Item,
+ &ett_e1ap_CriticalityDiagnostics,
+ &ett_e1ap_CriticalityDiagnostics_IE_List,
+ &ett_e1ap_CriticalityDiagnostics_IE_List_item,
+ &ett_e1ap_Data_Forwarding_Information_Request,
+ &ett_e1ap_Data_Forwarding_Information_Response,
+ &ett_e1ap_Data_Usage_Report_List,
+ &ett_e1ap_Data_Usage_Report_Item,
+ &ett_e1ap_DRB_Activity_Item,
+ &ett_e1ap_DRB_Confirm_Modified_List_EUTRAN,
+ &ett_e1ap_DRB_Confirm_Modified_Item_EUTRAN,
+ &ett_e1ap_DRB_Confirm_Modified_List_NG_RAN,
+ &ett_e1ap_DRB_Confirm_Modified_Item_NG_RAN,
+ &ett_e1ap_DRB_Failed_List_EUTRAN,
+ &ett_e1ap_DRB_Failed_Item_EUTRAN,
+ &ett_e1ap_DRB_Failed_List_NG_RAN,
+ &ett_e1ap_DRB_Failed_Item_NG_RAN,
+ &ett_e1ap_DRB_Failed_To_Modify_List_EUTRAN,
+ &ett_e1ap_DRB_Failed_To_Modify_Item_EUTRAN,
+ &ett_e1ap_DRB_Failed_To_Modify_List_NG_RAN,
+ &ett_e1ap_DRB_Failed_To_Modify_Item_NG_RAN,
+ &ett_e1ap_DRB_Modified_List_EUTRAN,
+ &ett_e1ap_DRB_Modified_Item_EUTRAN,
+ &ett_e1ap_DRB_Modified_List_NG_RAN,
+ &ett_e1ap_DRB_Modified_Item_NG_RAN,
+ &ett_e1ap_DRB_Required_To_Modify_List_EUTRAN,
+ &ett_e1ap_DRB_Required_To_Modify_Item_EUTRAN,
+ &ett_e1ap_DRB_Required_To_Modify_List_NG_RAN,
+ &ett_e1ap_DRB_Required_To_Modify_Item_NG_RAN,
+ &ett_e1ap_DRB_Setup_List_EUTRAN,
+ &ett_e1ap_DRB_Setup_Item_EUTRAN,
+ &ett_e1ap_DRB_Setup_List_NG_RAN,
+ &ett_e1ap_DRB_Setup_Item_NG_RAN,
+ &ett_e1ap_DRB_Status_Item,
+ &ett_e1ap_DRB_To_Modify_List_EUTRAN,
+ &ett_e1ap_DRB_To_Modify_Item_EUTRAN,
+ &ett_e1ap_DRB_To_Modify_List_NG_RAN,
+ &ett_e1ap_DRB_To_Modify_Item_NG_RAN,
+ &ett_e1ap_DRB_To_Remove_List_EUTRAN,
+ &ett_e1ap_DRB_To_Remove_Item_EUTRAN,
+ &ett_e1ap_DRB_To_Remove_List_NG_RAN,
+ &ett_e1ap_DRB_To_Remove_Item_NG_RAN,
+ &ett_e1ap_DRB_To_Setup_List_EUTRAN,
+ &ett_e1ap_DRB_To_Setup_Item_EUTRAN,
+ &ett_e1ap_DRB_To_Setup_List_NG_RAN,
+ &ett_e1ap_DRB_To_Setup_Item_NG_RAN,
+ &ett_e1ap_DRB_Usage_Report_List,
+ &ett_e1ap_DRB_Usage_Report_Item,
+ &ett_e1ap_Dynamic5QIDescriptor,
+ &ett_e1ap_EUTRANAllocationAndRetentionPriority,
+ &ett_e1ap_EUTRAN_QoS_Support_List,
+ &ett_e1ap_EUTRAN_QoS_Support_Item,
+ &ett_e1ap_EUTRAN_QoS,
+ &ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration,
+ &ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_Item,
+ &ett_e1ap_GBR_QosInformation,
+ &ett_e1ap_GBR_QoSFlowInformation,
+ &ett_e1ap_GTPTunnel,
+ &ett_e1ap_NGRANAllocationAndRetentionPriority,
+ &ett_e1ap_NG_RAN_QoS_Support_List,
+ &ett_e1ap_NG_RAN_QoS_Support_Item,
+ &ett_e1ap_Non_Dynamic5QIDescriptor,
+ &ett_e1ap_NR_CGI,
+ &ett_e1ap_NR_CGI_Support_List,
+ &ett_e1ap_NR_CGI_Support_Item,
+ &ett_e1ap_PDCP_Configuration,
+ &ett_e1ap_PDCP_Count,
+ &ett_e1ap_PDU_Session_Resource_Confirm_Modified_List,
+ &ett_e1ap_PDU_Session_Resource_Confirm_Modified_Item,
+ &ett_e1ap_PDU_Session_Resource_Failed_List,
+ &ett_e1ap_PDU_Session_Resource_Failed_Item,
+ &ett_e1ap_PDU_Session_Resource_Failed_To_Modify_List,
+ &ett_e1ap_PDU_Session_Resource_Failed_To_Modify_Item,
+ &ett_e1ap_PDU_Session_Resource_Modified_List,
+ &ett_e1ap_PDU_Session_Resource_Modified_Item,
+ &ett_e1ap_PDU_Session_Resource_Required_To_Modify_List,
+ &ett_e1ap_PDU_Session_Resource_Required_To_Modify_Item,
+ &ett_e1ap_PDU_Session_Resource_Setup_List,
+ &ett_e1ap_PDU_Session_Resource_Setup_Item,
+ &ett_e1ap_PDU_Session_Resource_To_Modify_List,
+ &ett_e1ap_PDU_Session_Resource_To_Modify_Item,
+ &ett_e1ap_PDU_Session_Resource_To_Remove_List,
+ &ett_e1ap_PDU_Session_Resource_To_Remove_Item,
+ &ett_e1ap_PDU_Session_Resource_To_Setup_List,
+ &ett_e1ap_PDU_Session_Resource_To_Setup_Item,
+ &ett_e1ap_QoS_Characteristics,
+ &ett_e1ap_QoS_Flow_List,
+ &ett_e1ap_QoS_Flow_Item,
+ &ett_e1ap_QoS_Flow_Failed_List,
+ &ett_e1ap_QoS_Flow_Failed_Item,
+ &ett_e1ap_QoS_Parameters_Support_List,
+ &ett_e1ap_QoS_Flow_QoS_Parameter_List,
+ &ett_e1ap_QoS_Flow_QoS_Parameter_Item,
+ &ett_e1ap_QoSFlowLevelQoSParameters,
+ &ett_e1ap_ROHC_Parameters,
+ &ett_e1ap_SecurityAlgorithm,
+ &ett_e1ap_SecurityIndication,
+ &ett_e1ap_SecurityInformation,
+ &ett_e1ap_Slice_Support_List,
+ &ett_e1ap_Slice_Support_Item,
+ &ett_e1ap_SNSSAI,
+ &ett_e1ap_SDAP_Configuration,
+ &ett_e1ap_T_ReorderingTimer,
+ &ett_e1ap_UE_associatedLogicalE1_ConnectionItem,
+ &ett_e1ap_UP_Parameters,
+ &ett_e1ap_UP_Parameters_Item,
+ &ett_e1ap_UPSecuritykey,
+ &ett_e1ap_UP_TNL_Information,
+ &ett_e1ap_Reset,
+ &ett_e1ap_ResetType,
+ &ett_e1ap_UE_associatedLogicalE1_ConnectionListRes,
+ &ett_e1ap_ResetAcknowledge,
+ &ett_e1ap_UE_associatedLogicalE1_ConnectionListResAck,
+ &ett_e1ap_ErrorIndication,
+ &ett_e1ap_GNB_CU_UP_E1SetupRequest,
+ &ett_e1ap_SupportedPLMNs_List,
+ &ett_e1ap_SupportedPLMNs_Item,
+ &ett_e1ap_GNB_CU_UP_E1SetupResponse,
+ &ett_e1ap_GNB_CU_UP_E1SetupFailure,
+ &ett_e1ap_GNB_CU_CP_E1SetupRequest,
+ &ett_e1ap_GNB_CU_CP_E1SetupResponse,
+ &ett_e1ap_GNB_CU_CP_E1SetupFailure,
+ &ett_e1ap_GNB_CU_UP_ConfigurationUpdate,
+ &ett_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge,
+ &ett_e1ap_GNB_CU_UP_ConfigurationUpdateFailure,
+ &ett_e1ap_GNB_CU_CP_ConfigurationUpdate,
+ &ett_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge,
+ &ett_e1ap_GNB_CU_CP_ConfigurationUpdateFailure,
+ &ett_e1ap_E1ReleaseRequest,
+ &ett_e1ap_E1ReleaseResponse,
+ &ett_e1ap_BearerContextSetupRequest,
+ &ett_e1ap_System_BearerContextSetupRequest,
+ &ett_e1ap_EUTRAN_BearerContextSetupRequest,
+ &ett_e1ap_NG_RAN_BearerContextSetupRequest,
+ &ett_e1ap_BearerContextSetupResponse,
+ &ett_e1ap_System_BearerContextSetupResponse,
+ &ett_e1ap_EUTRAN_BearerContextSetupResponse,
+ &ett_e1ap_NG_RAN_BearerContextSetupResponse,
+ &ett_e1ap_BearerContextSetupFailure,
+ &ett_e1ap_BearerContextModificationRequest,
+ &ett_e1ap_System_BearerContextModificationRequest,
+ &ett_e1ap_EUTRAN_BearerContextModificationRequest,
+ &ett_e1ap_NG_RAN_BearerContextModificationRequest,
+ &ett_e1ap_BearerContextModificationResponse,
+ &ett_e1ap_System_BearerContextModificationResponse,
+ &ett_e1ap_EUTRAN_BearerContextModificationResponse,
+ &ett_e1ap_NG_RAN_BearerContextModificationResponse,
+ &ett_e1ap_BearerContextModificationFailure,
+ &ett_e1ap_BearerContextModificationRequired,
+ &ett_e1ap_System_BearerContextModificationRequired,
+ &ett_e1ap_EUTRAN_BearerContextModificationRequired,
+ &ett_e1ap_NG_RAN_BearerContextModificationRequired,
+ &ett_e1ap_BearerContextModificationConfirm,
+ &ett_e1ap_System_BearerContextModificationConfirm,
+ &ett_e1ap_EUTRAN_BearerContextModificationConfirm,
+ &ett_e1ap_NG_RAN_BearerContextModificationConfirm,
+ &ett_e1ap_BearerContextReleaseCommand,
+ &ett_e1ap_BearerContextReleaseComplete,
+ &ett_e1ap_BearerContextReleaseRequest,
+ &ett_e1ap_DRB_Status_List,
+ &ett_e1ap_BearerContextInactivityNotification,
+ &ett_e1ap_DRB_Activity_List,
+ &ett_e1ap_DLDataNotification,
+ &ett_e1ap_DataUsageReport,
+ &ett_e1ap_PrivateMessage,
+ &ett_e1ap_E1AP_PDU,
+ &ett_e1ap_InitiatingMessage,
+ &ett_e1ap_SuccessfulOutcome,
+ &ett_e1ap_UnsuccessfulOutcome,
+
+/*--- End of included file: packet-e1ap-ettarr.c ---*/
+#line 195 "./asn1/e1ap/packet-e1ap-template.c"
+ };
+
+ /* Register protocol */
+ proto_e1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_e1ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ e1ap_handle = register_dissector("e1ap", dissect_e1ap, proto_e1ap);
+
+ /* Register dissector tables */
+ e1ap_ies_dissector_table = register_dissector_table("e1ap.ies", "E1AP-PROTOCOL-IES", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_extension_dissector_table = register_dissector_table("e1ap.extension", "E1AP-PROTOCOL-EXTENSION", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_proc_imsg_dissector_table = register_dissector_table("e1ap.proc.imsg", "E1AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_proc_sout_dissector_table = register_dissector_table("e1ap.proc.sout", "E1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e1ap, FT_UINT32, BASE_DEC);
+ e1ap_proc_uout_dissector_table = register_dissector_table("e1ap.proc.uout", "E1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e1ap, FT_UINT32, BASE_DEC);
+}
+
+void
+proto_reg_handoff_e1ap(void)
+{
+ //dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E1AP, e1ap_handle);
+ dissector_add_uint("sctp.ppi", E1AP_PROTOCOL_ID, e1ap_handle);
+
+/*--- Included file: packet-e1ap-dis-tab.c ---*/
+#line 1 "./asn1/e1ap/packet-e1ap-dis-tab.c"
+ dissector_add_uint("e1ap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_gNB_CU_CP_UE_E1AP_ID, create_dissector_handle(dissect_GNB_CU_CP_UE_E1AP_ID_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_gNB_CU_UP_UE_E1AP_ID, create_dissector_handle(dissect_GNB_CU_UP_UE_E1AP_ID_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_ResetType, create_dissector_handle(dissect_ResetType_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_UE_associatedLogicalE1_ConnectionItem, create_dissector_handle(dissect_UE_associatedLogicalE1_ConnectionItem_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_UE_associatedLogicalE1_ConnectionListResAck, create_dissector_handle(dissect_UE_associatedLogicalE1_ConnectionListResAck_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_gNB_CU_UP_ID, create_dissector_handle(dissect_GNB_CU_UP_ID_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_gNB_CU_UP_Name, create_dissector_handle(dissect_GNB_CU_UP_Name_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_gNB_CU_CP_Name, create_dissector_handle(dissect_GNB_CU_CP_Name_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_CNSupport, create_dissector_handle(dissect_CNSupport_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_SupportedPLMNs, create_dissector_handle(dissect_SupportedPLMNs_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_SupportedPLMNs_Item, create_dissector_handle(dissect_SupportedPLMNs_Item_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_TimeToWait, create_dissector_handle(dissect_TimeToWait_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_SecurityInformation, create_dissector_handle(dissect_SecurityInformation_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_UEDLAggregateMaximumBitRate, create_dissector_handle(dissect_BitRate_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_System_BearerContextSetupRequest, create_dissector_handle(dissect_System_BearerContextSetupRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_System_BearerContextSetupResponse, create_dissector_handle(dissect_System_BearerContextSetupResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_BearerContextStatusChange, create_dissector_handle(dissect_BearerContextStatusChange_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_System_BearerContextModificationRequest, create_dissector_handle(dissect_System_BearerContextModificationRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_System_BearerContextModificationResponse, create_dissector_handle(dissect_System_BearerContextModificationResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_System_BearerContextModificationConfirm, create_dissector_handle(dissect_System_BearerContextModificationConfirm_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_System_BearerContextModificationRequired, create_dissector_handle(dissect_System_BearerContextModificationRequired_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_DRB_Status_List, create_dissector_handle(dissect_DRB_Status_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_DRB_Status_Item, create_dissector_handle(dissect_DRB_Status_Item_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_DRB_Activity_List, create_dissector_handle(dissect_DRB_Activity_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_DRB_Activity_Item, create_dissector_handle(dissect_DRB_Activity_Item_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.ies", id_Data_Usage_Report_List, create_dissector_handle(dissect_Data_Usage_Report_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_reset, create_dissector_handle(dissect_Reset_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_reset, create_dissector_handle(dissect_ResetAcknowledge_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_errorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_gNB_CU_UP_E1Setup, create_dissector_handle(dissect_GNB_CU_UP_E1SetupRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_gNB_CU_UP_E1Setup, create_dissector_handle(dissect_GNB_CU_UP_E1SetupResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.uout", id_gNB_CU_UP_E1Setup, create_dissector_handle(dissect_GNB_CU_UP_E1SetupFailure_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_gNB_CU_CP_E1Setup, create_dissector_handle(dissect_GNB_CU_CP_E1SetupRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_gNB_CU_CP_E1Setup, create_dissector_handle(dissect_GNB_CU_CP_E1SetupResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.uout", id_gNB_CU_CP_E1Setup, create_dissector_handle(dissect_GNB_CU_CP_E1SetupFailure_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_gNB_CU_UP_ConfigurationUpdate, create_dissector_handle(dissect_GNB_CU_UP_ConfigurationUpdate_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_gNB_CU_UP_ConfigurationUpdate, create_dissector_handle(dissect_GNB_CU_UP_ConfigurationUpdateAcknowledge_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.uout", id_gNB_CU_UP_ConfigurationUpdate, create_dissector_handle(dissect_GNB_CU_UP_ConfigurationUpdateFailure_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_gNB_CU_CP_ConfigurationUpdate, create_dissector_handle(dissect_GNB_CU_CP_ConfigurationUpdate_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_gNB_CU_CP_ConfigurationUpdate, create_dissector_handle(dissect_GNB_CU_CP_ConfigurationUpdateAcknowledge_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.uout", id_gNB_CU_CP_ConfigurationUpdate, create_dissector_handle(dissect_GNB_CU_CP_ConfigurationUpdateFailure_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_e1Release, create_dissector_handle(dissect_E1ReleaseRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_e1Release, create_dissector_handle(dissect_E1ReleaseResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_bearerContextSetup, create_dissector_handle(dissect_BearerContextSetupRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_bearerContextSetup, create_dissector_handle(dissect_BearerContextSetupResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.uout", id_bearerContextSetup, create_dissector_handle(dissect_BearerContextSetupFailure_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_bearerContextModification, create_dissector_handle(dissect_BearerContextModificationRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_bearerContextModification, create_dissector_handle(dissect_BearerContextModificationResponse_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.uout", id_bearerContextModification, create_dissector_handle(dissect_BearerContextModificationFailure_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_bearerContextModificationRequired, create_dissector_handle(dissect_BearerContextModificationRequired_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_bearerContextModificationRequired, create_dissector_handle(dissect_BearerContextModificationConfirm_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_bearerContextRelease, create_dissector_handle(dissect_BearerContextReleaseCommand_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.sout", id_bearerContextRelease, create_dissector_handle(dissect_BearerContextReleaseComplete_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_bearerContextReleaseRequest, create_dissector_handle(dissect_BearerContextReleaseRequest_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_bearerContextInactivityNotification, create_dissector_handle(dissect_BearerContextInactivityNotification_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_dLDataNotification, create_dissector_handle(dissect_DLDataNotification_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_dataUsageReport, create_dissector_handle(dissect_DataUsageReport_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.proc.imsg", id_privateMessage, create_dissector_handle(dissect_PrivateMessage_PDU, proto_e1ap));
+
+
+/*--- End of included file: packet-e1ap-dis-tab.c ---*/
+#line 220 "./asn1/e1ap/packet-e1ap-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/sctpppids.h b/epan/sctpppids.h
index 8efcc5428e..3c5a04afac 100644
--- a/epan/sctpppids.h
+++ b/epan/sctpppids.h
@@ -82,5 +82,7 @@
#define NGAP_PROTOCOL_ID 60
#define XNAP_PROTOCOL_ID 61
#define F1AP_PROTOCOL_ID 62
+#define HTTP_SCTP_PROTOCOL_ID 63
+#define E1AP_PROTOCOL_ID 64
#endif /* sctpppids.h */