aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/s1ap/Makefile.am26
-rw-r--r--asn1/s1ap/Makefile.common52
-rw-r--r--asn1/s1ap/Makefile.nmake29
-rw-r--r--asn1/s1ap/S1AP-CommonDataTypes.asn34
-rw-r--r--asn1/s1ap/S1AP-Constants.asn153
-rw-r--r--asn1/s1ap/S1AP-Containers.asn200
-rw-r--r--asn1/s1ap/S1AP-IEs.asn486
-rw-r--r--asn1/s1ap/S1AP-PDU-Contents.asn1295
-rw-r--r--asn1/s1ap/S1AP-PDU-Descriptions.asn313
-rw-r--r--asn1/s1ap/packet-s1ap-template.c208
-rw-r--r--asn1/s1ap/s1ap.cnf374
11 files changed, 3170 insertions, 0 deletions
diff --git a/asn1/s1ap/Makefile.am b/asn1/s1ap/Makefile.am
new file mode 100644
index 0000000000..462af31e88
--- /dev/null
+++ b/asn1/s1ap/Makefile.am
@@ -0,0 +1,26 @@
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/asn1/s1ap/Makefile.common b/asn1/s1ap/Makefile.common
new file mode 100644
index 0000000000..75d540fcec
--- /dev/null
+++ b/asn1/s1ap/Makefile.common
@@ -0,0 +1,52 @@
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+PROTOCOL_NAME = s1ap
+
+DISSECTOR_FILES = \
+ packet-$(PROTOCOL_NAME).c
+
+NEED_PACKET_PROTO_H = 0
+
+EXT_ASN_FILE_LIST =
+
+ASN_FILE_LIST = \
+ S1AP-CommonDataTypes.asn \
+ S1AP-Constants.asn \
+ S1AP-Containers.asn \
+ S1AP-IEs.asn \
+ S1AP-PDU-Contents.asn \
+ S1AP-PDU-Descriptions.asn
+
+EXTRA_DIST = \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/asn1/s1ap/Makefile.nmake b/asn1/s1ap/Makefile.nmake
new file mode 100644
index 0000000000..5a32997c60
--- /dev/null
+++ b/asn1/s1ap/Makefile.nmake
@@ -0,0 +1,29 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/asn1/s1ap/S1AP-CommonDataTypes.asn b/asn1/s1ap/S1AP-CommonDataTypes.asn
new file mode 100644
index 0000000000..de5fcfd342
--- /dev/null
+++ b/asn1/s1ap/S1AP-CommonDataTypes.asn
@@ -0,0 +1,34 @@
+-- $Id$
+-- 9.3.5 Common Definitions
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+S1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (20) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
+
+END
diff --git a/asn1/s1ap/S1AP-Constants.asn b/asn1/s1ap/S1AP-Constants.asn
new file mode 100644
index 0000000000..5239d1911d
--- /dev/null
+++ b/asn1/s1ap/S1AP-Constants.asn
@@ -0,0 +1,153 @@
+-- $Id$
+-- 9.3.6 Constant Definitions
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+S1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (20) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation INTEGER ::= 0
+id-HandoverResourceAllocation INTEGER ::= 1
+id-HandoverNotification INTEGER ::= 2
+id-PathSwitchRequest INTEGER ::= 3
+id-HandoverCancel INTEGER ::= 4
+id-SAEBearerSetup INTEGER ::= 5
+id-SAEBearerModify INTEGER ::= 6
+id-SAEBearerRelease INTEGER ::= 7
+id-SAEBearerReleaseRequest INTEGER ::= 8
+id-InitialContextSetup INTEGER ::= 9
+id-Paging INTEGER ::= 10
+id-downlinkNASTransport INTEGER ::= 11
+id-initialUEMessage INTEGER ::= 12
+id-uplinkNASTransport INTEGER ::= 13
+id-Reset INTEGER ::= 14
+id-ErrorIndication INTEGER ::= 15
+id-NASNonDeliveryIndication INTEGER ::= 16
+id-S1Setup INTEGER ::= 17
+id-UEContextReleaseRequest INTEGER ::= 18
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfSAEBs INTEGER ::= 256
+maxNrOfInterfaces INTEGER ::= 3 --FFS
+maxnoofTAI INTEGER ::= 256 --FFS
+maxNrOfErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofNRIs INTEGER ::= 512 -- FFS
+maxnoofPLMNsPerMME INTEGER ::= 32 -- FFS
+maxnoofTAIs INTEGER ::= 256 -- FFS
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 256 -- FFS Value to be checked
+maxnoofForbTAIs INTEGER ::= 256 -- FFS Value to be checked
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID INTEGER ::= 0
+id-HandoverType INTEGER ::= 1
+id-Cause INTEGER ::= 2
+id-SourceID INTEGER ::= 3
+id-TargetID INTEGER ::= 4
+id-Intra-LTEHOInformationReq INTEGER ::= 5
+id-LTEtoUTRANHOInformationReq INTEGER ::= 6
+id-LTEtoGERANHOInformationReq INTEGER ::= 7
+id-eNB-UE-S1AP-ID INTEGER ::= 8
+id-Intra-LTEHOInformationRes INTEGER ::= 9
+id-LTEtoUTRANHOInformationRes INTEGER ::= 10
+id-LTEtoGERANHOInformationRes INTEGER ::= 11
+id-SAEBearerSubjecttoDataForwardingList INTEGER ::= 12
+id-SAEBearertoReleaseListHOCmd INTEGER ::= 13
+id-SAEBearerDataForwardingItem INTEGER ::= 14
+id-SAEBearerReleaseItemBearerRelComp INTEGER ::= 15
+id-SAEBearerToBeSetupListBearerSUReq INTEGER ::= 16
+id-SAEBearerToBeSetupItemBearerSUReq INTEGER ::= 17
+id-SAEBearerAdmittedList INTEGER ::= 18
+id-SAEBearerFailedToSetupListHOReqAck INTEGER ::= 19
+id-SAEBearerAdmittedItem INTEGER ::= 20
+id-SAEBearerFailedtoSetupItemHOReqAck INTEGER ::= 21
+id-SAEBearerToBeSwitchedDLList INTEGER ::= 22
+id-SAEBearerToBeSwitchedDLItem INTEGER ::= 23
+id-SAEBearerToBeSetupListCtxtSUReq INTEGER::= 24
+id-TraceActivation INTEGER::= 25
+id-NAS-PDU INTEGER ::= 26
+id-SAEBearerToBeSetupItemHOReq INTEGER ::= 27
+id-SAEBearerSetupListBearerSURes INTEGER ::= 28
+id-SAEBearerFailedToSetupListBearerSURes INTEGER ::= 29
+id-SAEBearerToBeModifiedListBearerModReq INTEGER ::= 30
+id-SAEBearerModifyListBearerModRes INTEGER ::= 31
+id-SAEBearerFailedToModifyList INTEGER ::= 32
+id-SAEBearerToBeReleasedList INTEGER ::= 33
+id-SAEBearerReleaseListBearerRelComp INTEGER ::= 33
+id-SAEBearerFailedToReleaseList INTEGER ::= 34
+id-SAEBearerItem INTEGER ::= 35
+id-SAEBearerToBeModifiedItemBearerModReq INTEGER ::= 36
+id-SAEBearerModifyItemBearerModRes INTEGER ::= 37
+id-SAEBearerReleaseItem INTEGER ::= 38
+id-SAEBearerSetupItemBearerSURes INTEGER ::= 39
+id-Security-Information INTEGER ::= 40
+id-HandoverRestrictionList INTEGER ::= 41
+id-s-TMSI INTEGER ::= 43
+id-pagingDRX INTEGER ::= 44
+id-pagingCause INTEGER ::= 45
+id-TAIdList INTEGER ::= 46
+id-TAIdItem INTEGER ::= 47
+id-SAEBearerFailedToSetupListCtxtSURes INTEGER ::= 48
+id-SAEBearerReleaseItemHOCmd INTEGER ::= 49
+id-SAEBearerSetupItemCtxtSURes INTEGER ::= 50
+id-SAEBearerSetupListCtxtSURes INTEGER ::= 51
+id-SAEBearerToBeSetupItemCtxtSUReq INTEGER ::= 52
+id-SAEBearerToBeSetupListHOReq INTEGER ::= 53
+id-GERANtoLTEHOInformationReq INTEGER ::= 54
+id-GERANtoLTEHOInformationRes INTEGER ::= 55
+id-UTRANtoLTEHOInformationReq INTEGER ::= 56
+id-UTRANtoLTEHOInformationRes INTEGER ::= 57
+id-CriticalityDiagnostics INTEGER ::= 58
+id-ENB-ID INTEGER ::= 59
+id-eNBname INTEGER ::= 60
+id-MMEname INTEGER ::= 61
+id-NRIs INTEGER ::= 62
+id-ServedPLMNs INTEGER ::= 63
+id-SupportedTAIs INTEGER ::= 64
+id-TimeToWait INTEGER ::= 65
+id-aggregateMaximumBitrate INTEGER ::= 66
+id-TAId INTEGER ::= 67
+id-ServingPLMN INTEGER ::= 68
+
+
+
+
+END
diff --git a/asn1/s1ap/S1AP-Containers.asn b/asn1/s1ap/S1AP-Containers.asn
new file mode 100644
index 0000000000..c75c7ffc0e
--- /dev/null
+++ b/asn1/s1ap/S1AP-Containers.asn
@@ -0,0 +1,200 @@
+-- $Id$
+-- 9.3.7 Container Definitions
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+
+S1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (20) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM S1AP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES-PAIR ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &firstCriticality Criticality,
+ &FirstValue,
+ &secondCriticality Criticality,
+ &SecondValue,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ FIRST CRITICALITY &firstCriticality
+ FIRST TYPE &FirstValue
+ SECOND CRITICALITY &secondCriticality
+ SECOND TYPE &SecondValue
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+S1AP-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 {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-SingleContainer {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/asn1/s1ap/S1AP-IEs.asn b/asn1/s1ap/S1AP-IEs.asn
new file mode 100644
index 0000000000..26d0ab77ae
--- /dev/null
+++ b/asn1/s1ap/S1AP-IEs.asn
@@ -0,0 +1,486 @@
+-- $Id$
+-- 9.3.4 Information Element Definitions
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+S1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (20) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ id-SAEBearerItem,
+ maxNrOfSAEBs,
+ maxNrOfInterfaces,
+
+ maxNrOfErrors,
+ maxnoofBPLMNs,
+ maxnoofNRIs,
+ maxnoofPLMNsPerMME,
+ maxnoofTAIs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTAIs
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+AllocationRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ iE-Extensions ProtocolExtensionContainer { {AllocationRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AggregateMaximumBitrate ::= SEQUENCE {
+ aggregateMaximumBitRateDL SAE-Bearer-BitRate,
+ aggregateMaximumBitRateUL SAE-Bearer-BitRate,
+ iE-Extensions ProtocolExtensionContainer { {Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- B
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+
+-- 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,
+ handover-triggered,
+ tx2relocoverall-expiry,
+ ...
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI
+ }
+
+
+CI ::= OCTET STRING (SIZE (2))
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-List-ExtIEs}} OPTIONAL,
+ ...
+ }
+
+CriticalityDiagnostics-IE-List-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+-- E
+
+ENB-UE-S1AP-ID ::= TBCD-STRING (SIZE (3))
+ENB-ID ::= INTEGER (0..65535)
+
+ENBname ::= OCTET STRING
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ ...
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTAIs ForbiddenTAIs
+}
+
+ForbiddenTAIs ::= SEQUENCE (SIZE(1..maxnoofForbTAIs)) OF TAI
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+
+-- H
+
+HandoverRestrictionList ::= SEQUENCE {
+ equivalentPLMNs EPLMNs OPTIONAL,
+ forbiddenTAs ForbiddenTAs OPTIONAL,
+ forbiddenLAs ForbiddenLAs OPTIONAL,
+ forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte,
+ ...
+}
+
+-- I
+
+InterfacesToTraceList ::= SEQUENCE (SIZE (1..maxNrOfInterfaces)) OF InterfacesToTraceItem
+
+InterfacesToTraceItem ::= SEQUENCE {
+ interfaceType InterfaceType,
+ traceDepth TraceDepth,
+ iE-Extensions ProtocolExtensionContainer { {InterfacesToTraceItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InterfacesToTraceItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+InterfaceType ::= ENUMERATED {
+ s1,
+ x2,
+ uu,
+...
+}
+
+-- J
+-- K
+-- L
+
+Label ::= INTEGER (1..256)
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- M
+
+MMEname ::= OCTET STRING
+
+MME-UE-S1AP-ID ::= TBCD-STRING (SIZE (3))
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NRIs ::= SEQUENCE (SIZE(1..maxnoofNRIs)) OF NRI
+
+NRI ::= OCTET STRING
+
+-- O
+-- P
+
+PagingDRX ::= INTEGER (0..4095)
+
+PagingCause ::= ENUMERATED {
+ terminating-conversational-call,
+ terminating-streaming-call,
+ terminating-interactive-call,
+ terminating-background-call,
+ terminating-low-priority-signalling,
+ ...,
+ terminating-high-priority-signalling
+}
+PLMNidentity ::= TBCD-STRING (SIZE (3))
+
+PriorityLevel ::= INTEGER (0..15)
+
+
+-- Q
+-- R
+
+RAC ::= OCTET STRING (SIZE (1))
+
+
+RNC-ID ::= INTEGER (0..4095)
+
+-- S
+
+SAE-Bearer-ID ::= OCTET STRING
+
+SAEBearerList ::= SEQUENCE (SIZE(0.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerItemIEs} }
+
+SAEBearerItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerItem CRITICALITY reject TYPE SAEBearerItem PRESENCE mandatory },
+ ...
+}
+
+SAEBearerItem ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAE-Bearer-BitRate ::= INTEGER (0..10000000)
+
+
+SAE-BearerLevelQoSParameters ::= SEQUENCE {
+ label Label,
+ allocationRetentionPriority AllocationRetentionPriority OPTIONAL,
+ sAE-BearerType SAE-Bearer-Type,
+ iE-Extensions ProtocolExtensionContainer { {SAE-Bearer-QoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAE-Bearer-QoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAE-Bearer-Type ::= CHOICE {
+ sAE-GBR-Bearer SAE-GBR-Bearer,
+ sAE-non-GBR-Bearer SAE-non-GBR-Bearer,
+ ...
+}
+
+SAE-GBR-Bearer ::= SEQUENCE {
+ sAE-Bearer-MaximumBitrateDL SAE-Bearer-BitRate,
+ sAE-Bearer-MaximumBitrateUL SAE-Bearer-BitRate,
+ sAE-Bearer-GuaranteedBitrateDL SAE-Bearer-BitRate,
+ sAE-Bearer-GuaranteedBitrateUL SAE-Bearer-BitRate,
+ iE-Extensions ProtocolExtensionContainer { {SAE-GBR-Bearer-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAE-GBR-Bearer-Parameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SAE-non-GBR-Bearer ::= SEQUENCE {
+ sAE-non-GBR-Bearer-Type ENUMERATED {non-GBR-Bearer,...},
+ iE-Extensions ProtocolExtensionContainer { {SAE-non-GBR-Bearer-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAE-non-GBR-Bearer-Parameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SecurityInformation ::= SEQUENCE {
+ securityPlaceHolder ENUMERATED {whatever},
+ iE-Extensions ProtocolExtensionContainer { { SecurityInformation-ExtIEs} } OPTIONAL
+
+}
+
+SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+
+SourceID ::= SEQUENCE {
+ sourceeNB-ID SourceeNB-ID,
+ ...
+}
+
+SourceeNB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID
+}
+
+SourceeNodeB-ToTargeteNodeB-TransparentContainer ::= OCTET STRING
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SupportedTAIs ::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAI TAId,
+ broadcastPLMNs BPLMNs,
+ ...
+}
+
+S-TMSI ::= OCTET STRING
+
+
+-- T
+
+TAI ::= OCTET STRING
+
+TAId ::= OCTET STRING
+
+TBCD-STRING ::= OCTET STRING
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID
+ }
+
+
+TargeteNodeB-ToSourceeNodeB-TransparentContainer ::= OCTET STRING
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+
+TimeToWait ::= OCTET STRING
+
+TransportLayerAddress ::= OCTET STRING
+
+TraceActivation ::= SEQUENCE {
+ traceReference TraceReference,
+ interfacesToTraceList InterfacesToTraceList,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ ...
+}
+
+TraceReference ::= OCTET STRING (SIZE (3))
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+-- U
+
+UserDataType ::= INTEGER
+-- Editors note: FFS (ENUMERATED?)
+
+-- V
+-- W
+-- X
+-- Y
+-- Z
+
+END
+
+
diff --git a/asn1/s1ap/S1AP-PDU-Contents.asn b/asn1/s1ap/S1AP-PDU-Contents.asn
new file mode 100644
index 0000000000..7482d5404c
--- /dev/null
+++ b/asn1/s1ap/S1AP-PDU-Contents.asn
@@ -0,0 +1,1295 @@
+-- $Id$
+-- 9.3.3 PDU Definitions
+-- **************************************************************
+--
+-- PDU definitions for S1AP.
+--
+-- **************************************************************
+S1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (20) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ AggregateMaximumBitrate,
+ MME-UE-S1AP-ID,
+ ENB-UE-S1AP-ID,
+ HandoverType,
+ Cause,
+ SourceID,
+ TargetID,
+ SourceeNodeB-ToTargeteNodeB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ TargeteNodeB-ToSourceeNodeB-TransparentContainer,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ SAE-Bearer-ID,
+ TransportLayerAddress,
+ GTP-TEID,
+ SAE-BearerLevelQoSParameters,
+ SAEBearerList,
+ Cause,
+ TraceActivation,
+ NAS-PDU,
+ UserDataType,
+ SecurityInformation,
+ S-TMSI,
+ PagingDRX,
+ PagingCause,
+ TAId,
+ CriticalityDiagnostics,
+ ENB-ID,
+ ENBname,
+ MMEname,
+ NRIs,
+ ServedPLMNs,
+ SupportedTAIs,
+ TimeToWait,
+ HandoverRestrictionList,
+ PLMNidentity
+
+
+FROM S1AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-SingleContainer{},
+ S1AP-PRIVATE-IES,
+ S1AP-PROTOCOL-EXTENSION,
+ S1AP-PROTOCOL-IES,
+ S1AP-PROTOCOL-IES-PAIR
+FROM S1AP-Containers
+
+
+ id-aggregateMaximumBitrate,
+ id-Cause,
+ id-CriticalityDiagnostics,
+ id-ENB-ID,
+ id-eNBname,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationReq,
+ id-GERANtoLTEHOInformationRes,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-InitialContextSetup,
+ id-Intra-LTEHOInformationReq,
+ id-Intra-LTEHOInformationRes,
+ id-LTEtoGERANHOInformationReq,
+ id-LTEtoGERANHOInformationRes,
+ id-LTEtoUTRANHOInformationReq,
+ id-LTEtoUTRANHOInformationRes,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-NAS-PDU,
+ id-NRIs,
+ id-pagingCause,
+ id-pagingDRX,
+ id-ServingPLMN,
+ id-SAEBearerAdmittedItem,
+ id-SAEBearerAdmittedList,
+ id-SAEBearerDataForwardingItem,
+ id-SAEBearerFailedToModifyList,
+ id-SAEBearerFailedToReleaseList,
+ id-SAEBearerFailedtoSetupItemHOReqAck,
+ id-SAEBearerFailedToSetupListBearerSURes,
+ id-SAEBearerFailedToSetupListCtxtSURes,
+ id-SAEBearerFailedToSetupListHOReqAck,
+ id-SAEBearerModify,
+ id-SAEBearerModifyItemBearerModRes,
+ id-SAEBearerModifyListBearerModRes,
+ id-SAEBearerRelease,
+ id-SAEBearerReleaseItemBearerRelComp,
+ id-SAEBearerReleaseItemHOCmd,
+ id-SAEBearerReleaseListBearerRelComp,
+ id-SAEBearerReleaseRequest,
+ id-SAEBearerSetup,
+ id-SAEBearerSetupItemBearerSURes,
+ id-SAEBearerSetupItemCtxtSURes,
+ id-SAEBearerSetupListBearerSURes,
+ id-SAEBearerSetupListCtxtSURes,
+ id-SAEBearerSubjecttoDataForwardingList,
+ id-SAEBearerToBeModifiedItemBearerModReq,
+ id-SAEBearerToBeModifiedListBearerModReq,
+ id-SAEBearerToBeReleasedList,
+ id-SAEBearerToBeSetupItemBearerSUReq,
+ id-SAEBearerToBeSetupItemCtxtSUReq,
+ id-SAEBearerToBeSetupItemHOReq,
+ id-SAEBearerToBeSetupListBearerSUReq,
+ id-SAEBearerToBeSetupListCtxtSUReq,
+ id-SAEBearerToBeSetupListHOReq,
+ id-SAEBearerToBeSwitchedDLItem,
+ id-SAEBearerToBeSwitchedDLList,
+ id-SAEBearertoReleaseListHOCmd,
+ id-Security-Information,
+ id-ServedPLMNs,
+ id-SourceID,
+ id-s-TMSI,
+ id-SupportedTAIs,
+ id-TAId,
+ id-TAIdItem,
+ id-TAIdList,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-UTRANtoLTEHOInformationReq,
+ id-UTRANtoLTEHOInformationRes,
+ maxnoofTAI,
+ maxNrOfErrors,
+ maxNrOfSAEBs
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+SAEB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfSAEBs, {IEsSetParam} }
+SAEB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfSAEBs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfSAEBs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Required
+--
+-- **************************************************************
+
+HandoverRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} },
+ ...
+}
+
+HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-SourceID CRITICALITY ignore TYPE SourceID PRESENCE mandatory } |
+ { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory } |
+ { ID id-Intra-LTEHOInformationReq CRITICALITY reject TYPE Intra-LTEHOInformationReq PRESENCE conditional
+ -- This IE shall be present if Handover Type IE is set to value "IntraLTE" -- } |
+ { ID id-LTEtoUTRANHOInformationReq CRITICALITY reject TYPE LTEtoUTRANHOInformationReq PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "LTEtoUTRAN" -- } |
+ { ID id-LTEtoGERANHOInformationReq
+ CRITICALITY reject TYPE LTEtoGERANHOInformationReq PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "LTEtoGERAN" -- },
+ ...
+}
+
+Intra-LTEHOInformationReq ::= SEQUENCE {
+ sourceeNodeB-ToTargeteNodeB-TransparentContainer SourceeNodeB-ToTargeteNodeB-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {Intra-LTEHOInformationReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Intra-LTEHOInformationReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTEtoUTRANHOInformationReq ::= SEQUENCE {
+ sourceRNC-ToTargetRNC-TransparentContainer SourceRNC-ToTargetRNC-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {LTEtoUTRANHOInformationReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTEtoUTRANHOInformationReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTEtoGERANHOInformationReq ::= SEQUENCE {
+ sourceBSS-ToTargetBSS-TransparentContainer SourceBSS-ToTargetBSS-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {LTEtoGERANHOInformationReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTEtoGERANHOInformationReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-SAEBearerSubjecttoDataForwardingList CRITICALITY ignore TYPE SAEBearerSubjecttoDataForwardingList PRESENCE mandatory } |
+ { ID id-SAEBearertoReleaseListHOCmd CRITICALITY ignore TYPE SAEBearertoReleaseListHOCmd PRESENCE mandatory } |
+ { ID id-Intra-LTEHOInformationRes CRITICALITY reject TYPE Intra-LTEHOInformationRes PRESENCE conditional
+ -- This IE shall be present if Handover Type IE is set to value "IntraLTE" -- } |
+ { ID id-LTEtoUTRANHOInformationRes CRITICALITY reject TYPE LTEtoUTRANHOInformationRes PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "LTEtoUTRAN" -- } |
+ { ID id-LTEtoGERANHOInformationRes
+ CRITICALITY reject TYPE LTEtoGERANHOInformationRes PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "LTEtoGERAN" -- },
+ ...
+}
+
+SAEBearerSubjecttoDataForwardingList ::= SAEB-IE-ContainerList { {SAEBearerDataForwardingItemIEs} }
+
+SAEBearerDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerDataForwardingItem CRITICALITY ignore TYPE SAEBearerDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+SAEBearerDataForwardingItem ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { SAEBearerDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAEBearertoReleaseListHOCmd ::= SAEB-IE-ContainerList { {SAEBearerReleaseItemHOCmdIEs} }
+
+SAEBearerReleaseItemHOCmdIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerReleaseItemHOCmd CRITICALITY ignore TYPE SAEBearerReleaseItemHOCmd PRESENCE mandatory },
+ ...
+}
+
+SAEBearerReleaseItemHOCmd ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ iE-Extensions ProtocolExtensionContainer { { SAEBearerReleaseItemHOCmd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerReleaseItemHOCmd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Intra-LTEHOInformationRes ::= SEQUENCE {
+ targeteNodeB-ToSourceeNodeB-TransparentContainer TargeteNodeB-ToSourceeNodeB-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {Intra-LTEHOInformationRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Intra-LTEHOInformationRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTEtoUTRANHOInformationRes ::= SEQUENCE {
+ targetRNC-ToSourceRNC-TransparentContainer TargetRNC-ToSourceRNC-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {LTEtoUTRANHOInformationRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTEtoUTRANHOInformationRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTEtoGERANHOInformationRes ::= SEQUENCE {
+ targetBSS-ToSourceBSS-TransparentContainer TargetBSS-ToSourceBSS-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {LTEtoGERANHOInformationRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTEtoGERANHOInformationRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Request
+--
+-- **************************************************************
+
+HandoverRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestIEs} },
+ ...
+}
+
+HandoverRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-SAEBearerToBeSetupListHOReq CRITICALITY reject TYPE SAEBearerToBeSetupListHOReq PRESENCE mandatory } |
+ { ID id-Intra-LTEHOInformationReq CRITICALITY reject TYPE Intra-LTEHOInformationReq PRESENCE conditional
+ -- This IE shall be present if Handover Type IE is set to value "IntraLTE" -- } |
+ { ID id-UTRANtoLTEHOInformationReq CRITICALITY reject TYPE UTRANtoLTEHOInformationReq PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "UTRANtoLTE" -- } |
+ { ID id-GERANtoLTEHOInformationReq
+ CRITICALITY reject TYPE GERANtoLTEHOInformationReq PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "GERANtoLTE" -- } |
+ { ID id-ServingPLMN CRITICALITY reject TYPE PLMNidentity PRESENCE optional } |
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional },
+ ...
+}
+
+SAEBearerToBeSetupListHOReq ::= SAEB-IE-ContainerList { {SAEBearerToBeSetupItemHOReqIEs} }
+
+SAEBearerToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerToBeSetupItemHOReq CRITICALITY ignore TYPE SAEBearerToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+SAEBearerToBeSetupItemHOReq ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ sAE-BearerlevelQosParameters SAE-BearerLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+UTRANtoLTEHOInformationReq ::= SEQUENCE {
+ sourceRNC-ToTargetRNC-TransparentContainer SourceRNC-ToTargetRNC-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {UTRANtoLTEHOInformationReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UTRANtoLTEHOInformationReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERANtoLTEHOInformationReq ::= SEQUENCE {
+ sourceBSS-ToTargetBSS-TransparentContainer SourceBSS-ToTargetBSS-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {GERANtoLTEHOInformationReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERANtoLTEHOInformationReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
+ { ID id-SAEBearerAdmittedList CRITICALITY reject TYPE SAEBearerAdmittedList PRESENCE mandatory } |
+ { ID id-SAEBearerFailedToSetupListHOReqAck CRITICALITY ignore TYPE SAEBearerFailedtoSetupListHOReqAck PRESENCE mandatory } |
+ { ID id-Intra-LTEHOInformationRes CRITICALITY reject TYPE Intra-LTEHOInformationRes PRESENCE conditional
+ -- This IE shall be present if Handover Type IE is set to value "IntraLTE" -- } |
+ { ID id-UTRANtoLTEHOInformationRes CRITICALITY reject TYPE LTEtoUTRANHOInformationRes PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "UTRANtoLTE" -- } |
+ { ID id-GERANtoLTEHOInformationRes
+ CRITICALITY reject TYPE LTEtoGERANHOInformationRes PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to value "GERANtoLTE" -- },
+ ...
+}
+
+SAEBearerAdmittedList ::= SAEB-IE-ContainerList { {SAEBearerAdmittedItemIEs} }
+
+SAEBearerAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerAdmittedItem CRITICALITY ignore TYPE SAEBearerAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+SAEBearerAdmittedItem ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SAEBearerFailedtoSetupListHOReqAck ::= SAEB-IE-ContainerList { {SAEBearerFailedtoSetupItemHOReqAckIEs} }
+
+SAEBearerFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE SAEBearerFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+SAEBearerFailedToSetupItemHOReqAck ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { SAEBearerFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UTRANtoLTEHOInformationRes ::= SEQUENCE {
+ targetRNC-ToSourceRNC-TransparentContainer TargetRNC-ToSourceRNC-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {UTRANtoLTEHOInformationRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UTRANtoLTEHOInformationRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GERANtoLTEHOInformationRes ::= SEQUENCE {
+ targetBSS-ToSourceBSS-TransparentContainer TargetBSS-ToSourceBSS-TransparentContainer,
+ iE-Extensions ProtocolExtensionContainer { {GERANtoLTEHOInformationRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERANtoLTEHOInformationRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Notify
+--
+-- **************************************************************
+
+HandoverNotify ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} },
+ ...
+}
+
+HandoverNotifyIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } |
+ { ID id-SAEBearerToBeSwitchedDLList CRITICALITY reject TYPE SAEBearerToBeSwitchedDLList PRESENCE mandatory },
+ ...
+}
+
+SAEBearerToBeSwitchedDLList ::= SAEB-IE-ContainerList { {SAEBearerToBeSwitchedDLItemIEs} }
+
+SAEBearerToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerToBeSwitchedDLItem CRITICALITY ignore TYPE SAEBearerToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+SAEBearerToBeSwitchedDLItem ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { SAEBearerToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SAEBearerToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Path Switch Request Acknowledge
+--
+-- **************************************************************
+
+PathSwitchRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} },
+ ...
+}
+
+PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Cancel
+--
+-- **************************************************************
+
+HandoverCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelIEs} },
+ ...
+}
+
+HandoverCancelIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Cancel Request Acknowledge
+--
+-- **************************************************************
+
+HandoverCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} },
+ ...
+}
+
+HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- SAE BEARER SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SAE Bearer Setup Request
+--
+-- **************************************************************
+
+SAEBearerSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SAEBearerSetupRequestIEs} },
+ ...
+}
+
+SAEBearerSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerToBeSetupListBearerSUReq CRITICALITY reject TYPE SAEBearerToBeSetupListBearerSUReq PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory},
+ ...
+}
+
+SAEBearerToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerToBeSetupItemBearerSUReqIEs} }
+
+SAEBearerToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerToBeSetupItemBearerSUReq CRITICALITY reject TYPE SAEBearerToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+SAEBearerToBeSetupItemBearerSUReq ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ sAE-BearerlevelQoSParameters SAE-BearerLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ userDataType UserDataType, -- FFS
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SAE Bearer Setup Response
+--
+-- **************************************************************
+
+SAEBearerSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SAEBearerSetupResponseIEs} },
+ ...
+}
+
+SAEBearerSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerSetupListBearerSURes CRITICALITY reject TYPE SAEBearerSetupListBearerSURes PRESENCE optional }|
+ { ID id-SAEBearerFailedToSetupListBearerSURes CRITICALITY ignore TYPE SAEBearerList PRESENCE optional }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory},
+ ...
+}
+
+
+SAEBearerSetupListBearerSURes ::= SEQUENCE (SIZE(0.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerSetupItemBearerSUResIEs} }
+
+SAEBearerSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerSetupItemBearerSURes CRITICALITY reject TYPE SAEBearerSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+SAEBearerSetupItemBearerSURes ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- SAE BEARER MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SAE Bearer Modify Request
+--
+-- **************************************************************
+
+SAEBearerModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SAEBearerModifyRequestIEs} },
+ ...
+}
+
+SAEBearerModifyRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerToBeModifiedListBearerModReq CRITICALITY reject TYPE SAEBearerToBeModifiedListBearerModReq PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory},
+ ...
+}
+
+SAEBearerToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerToBeModifiedItemBearerModReqIEs} }
+
+SAEBearerToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerToBeModifiedItemBearerModReq CRITICALITY reject TYPE SAEBearerToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+SAEBearerToBeModifiedItemBearerModReq ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ sAE-BearerLevelQoSParameters SAE-BearerLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- SAE Bearer Modify Response
+--
+-- **************************************************************
+
+SAEBearerModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SAEBearerModifyResponseIEs} },
+ ...
+}
+
+SAEBearerModifyResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerModifyListBearerModRes CRITICALITY ignore TYPE SAEBearerModifyListBearerModRes PRESENCE optional }|
+ { ID id-SAEBearerFailedToModifyList CRITICALITY ignore TYPE SAEBearerList PRESENCE optional }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory},
+ ...
+}
+
+
+SAEBearerModifyListBearerModRes ::= SEQUENCE (SIZE(0.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerModifyItemBearerModResIEs} }
+
+SAEBearerModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerModifyItemBearerModRes CRITICALITY reject TYPE SAEBearerModifyItemBearerModRes PRESENCE mandatory },
+ ...
+}
+
+SAEBearerModifyItemBearerModRes ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- SAE BEARER RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SAE Bearer Release Command
+--
+-- **************************************************************
+
+SAEBearerReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SAEBearerReleaseCommandIEs} },
+ ...
+}
+
+SAEBearerReleaseCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerToBeReleasedList CRITICALITY ignore TYPE SAEBearerList PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SAE Bearer Release Complete
+--
+-- **************************************************************
+
+SAEBearerReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { SAEBearerReleaseCompleteIEs } },
+ ...
+}
+
+SAEBearerReleaseCompleteIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerReleaseListBearerRelComp CRITICALITY ignore TYPE SAEBearerReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-SAEBearerFailedToReleaseList CRITICALITY ignore TYPE SAEBearerList PRESENCE optional },
+ ...
+}
+
+
+SAEBearerReleaseListBearerRelComp ::= SEQUENCE (SIZE(0.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerReleaseItemBearerRelCompIEs} }
+
+SAEBearerReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerReleaseItemBearerRelComp CRITICALITY reject TYPE SAEBearerReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+SAEBearerReleaseItemBearerRelComp ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- SAE BEARER RELEASE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- SAE Bearer Release Request
+--
+-- **************************************************************
+
+SAEBearerReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {SAEBearerReleaseRequestIEs} },
+ ...
+}
+
+SAEBearerReleaseRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerToBeReleasedList CRITICALITY ignore TYPE SAEBearerList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial Context Setup Request
+--
+-- **************************************************************
+
+InitialContextSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} },
+ ...
+}
+
+InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-aggregateMaximumBitrate CRITICALITY reject TYPE AggregateMaximumBitrate PRESENCE optional }|
+ { ID id-SAEBearerToBeSetupListCtxtSUReq CRITICALITY reject TYPE SAEBearerToBeSetupListCtxtSUReq PRESENCE mandatory }|
+ { ID id-Security-Information CRITICALITY ignore TYPE SecurityInformation PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-ServingPLMN CRITICALITY reject TYPE PLMNidentity PRESENCE optional } |
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE REQUEST
+--
+-- **************************************************************
+
+UEContextReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}},
+ ...
+}
+
+UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+
+
+
+SAEBearerToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerToBeSetupItemCtxtSUReqIEs} }
+
+SAEBearerToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerToBeSetupItemCtxtSUReq CRITICALITY reject TYPE SAEBearerToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+SAEBearerToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ sAE-BearerlevelQoSParameters SAE-BearerLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-SAEBearerSetupListCtxtSURes CRITICALITY reject TYPE SAEBearerSetupListCtxtSURes PRESENCE optional }|
+ { ID id-SAEBearerFailedToSetupListCtxtSURes CRITICALITY ignore TYPE SAEBearerList PRESENCE optional },
+ ...
+}
+
+
+SAEBearerSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxNrOfSAEBs)) OF ProtocolIE-SingleContainer { {SAEBearerSetupItemCtxtSUResIEs} }
+
+SAEBearerSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SAEBearerSetupItemCtxtSURes CRITICALITY reject TYPE SAEBearerSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+SAEBearerSetupItemCtxtSURes ::= SEQUENCE {
+ sAE-Bearer-ID SAE-Bearer-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {SAEBearerSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SAEBearerSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-s-TMSI CRITICALITY ignore TYPE S-TMSI PRESENCE mandatory } |
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory } |
+ { ID id-pagingCause CRITICALITY ignore TYPE PagingCause PRESENCE mandatory } |
+ { ID id-TAIdList CRITICALITY ignore TYPE TAIdList PRESENCE mandatory },
+ ...
+}
+
+TAIdList::= SEQUENCE (SIZE(1.. maxnoofTAI)) OF ProtocolIE-SingleContainer {{TAIdItemIEs}}
+
+TAIdItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIdItem CRITICALITY ignore TYPE TAIdItem PRESENCE mandatory },
+ ...
+}
+
+TAIdItem ::= SEQUENCE {
+ tAId TAId, -- FFS
+ iE-Extensions ProtocolExtensionContainer { {TAIdItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIdItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}},
+ ...
+}
+
+DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} |
+ { ID id-ServingPLMN CRITICALITY reject TYPE PLMNidentity PRESENCE optional } |
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE
+--
+-- **************************************************************
+
+InitialUEMessage ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}},
+ ...
+}
+
+InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} |
+ { ID id-TAId CRITICALITY reject TYPE TAId PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UPLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+UplinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}},
+ ...
+}
+
+UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} ,
+ ...
+}
+-- **************************************************************
+--
+-- NAS NON DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASNonDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}},
+ ...
+}
+
+NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} |
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory} |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
+ ...
+}
+
+ErrorIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional } |
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional } |
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } ,
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- S1 Setup Request
+--
+-- **************************************************************
+
+S1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} },
+ ...
+}
+
+S1SetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-ENB-ID CRITICALITY reject TYPE ENB-ID PRESENCE mandatory }|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE mandatory }|
+ { ID id-SupportedTAIs CRITICALITY reject TYPE SupportedTAIs PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE mandatory }|
+ { ID id-ServedPLMNs CRITICALITY reject TYPE ServedPLMNs PRESENCE mandatory }|
+ { ID id-NRIs CRITICALITY reject TYPE NRIs PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Failure
+--
+-- **************************************************************
+
+S1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} },
+ ...
+}
+
+S1SetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional },
+ ...
+}
+
+
+END
diff --git a/asn1/s1ap/S1AP-PDU-Descriptions.asn b/asn1/s1ap/S1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000000..98bf0d9134
--- /dev/null
+++ b/asn1/s1ap/S1AP-PDU-Descriptions.asn
@@ -0,0 +1,313 @@
+-- $Id$
+-- 9.3.2 Elementary Procedure Definitions
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+S1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (20) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM S1AP-CommonDataTypes
+
+ HandoverRequired,
+ HandoverCommand,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverFailure,
+ HandoverNotify,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ SAEBearerSetupRequest,
+ SAEBearerSetupResponse,
+ SAEBearerModifyRequest,
+ SAEBearerModifyResponse,
+ SAEBearerReleaseCommand,
+ SAEBearerReleaseComplete,
+ SAEBearerReleaseRequest,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialContextSetupFailure,
+ Paging,
+ DownlinkNASTransport,
+ InitialUEMessage,
+ UplinkNASTransport,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ Reset,
+ ResetAcknowledge,
+ ErrorIndication,
+ NASNonDeliveryIndication,
+ S1SetupRequest,
+ S1SetupResponse,
+ S1SetupFailure,
+ UEContextReleaseRequest
+
+FROM S1AP-PDU-Contents
+
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-HandoverNotification,
+ id-PathSwitchRequest,
+ id-SAEBearerSetup,
+ id-SAEBearerModify,
+ id-SAEBearerRelease,
+ id-SAEBearerReleaseRequest,
+ id-InitialContextSetup,
+ id-Paging,
+ id-downlinkNASTransport,
+ id-initialUEMessage,
+ id-uplinkNASTransport,
+ id-HandoverCancel,
+ id-Reset,
+ id-ErrorIndication,
+ id-NASNonDeliveryIndication,
+ id-S1Setup,
+ id-UEContextReleaseRequest
+FROM S1AP-Constants;
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+S1AP-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
+--
+-- **************************************************************
+
+S1AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
+ ...
+}
+
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverPreparation |
+ handoverResourceAllocation |
+ pathSwitchRequest |
+ sAEbearerSetup |
+ sAEbearerModify |
+ sAEbearerRelease |
+ initialContextSetup |
+ handoverCancel |
+ reset |
+ s1Setup,
+ ...
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ sAEbearerReleaseRequest |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest ,
+ ...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequired
+ SUCCESSFUL OUTCOME HandoverCommand
+ UNSUCCESSFUL OUTCOME HandoverPreparationFailure
+ PROCEDURE CODE id-HandoverPreparation
+ CRITICALITY reject
+}
+
+handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequest
+ SUCCESSFUL OUTCOME HandoverRequestAcknowledge
+ UNSUCCESSFUL OUTCOME HandoverFailure
+ PROCEDURE CODE id-HandoverResourceAllocation
+ CRITICALITY reject
+}
+
+handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverNotify
+ PROCEDURE CODE id-HandoverNotification
+ CRITICALITY reject
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+sAEbearerSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SAEBearerSetupRequest
+ SUCCESSFUL OUTCOME SAEBearerSetupResponse
+ PROCEDURE CODE id-SAEBearerSetup
+ CRITICALITY reject
+}
+
+sAEbearerModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SAEBearerModifyRequest
+ SUCCESSFUL OUTCOME SAEBearerModifyResponse
+ PROCEDURE CODE id-SAEBearerModify
+ CRITICALITY reject
+}
+
+sAEbearerRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SAEBearerReleaseCommand
+ SUCCESSFUL OUTCOME SAEBearerReleaseComplete
+ PROCEDURE CODE id-SAEBearerRelease
+ CRITICALITY reject
+}
+
+sAEbearerReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SAEBearerReleaseRequest
+ PROCEDURE CODE id-SAEBearerReleaseRequest
+ CRITICALITY ignore
+}
+
+initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialContextSetupRequest
+ SUCCESSFUL OUTCOME InitialContextSetupResponse
+ UNSUCCESSFUL OUTCOME InitialContextSetupFailure
+ PROCEDURE CODE id-InitialContextSetup
+ CRITICALITY reject
+}
+
+uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseRequest
+ PROCEDURE CODE id-UEContextReleaseRequest
+ CRITICALITY ignore
+}
+
+paging S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNASTransport
+ PROCEDURE CODE id-downlinkNASTransport
+ CRITICALITY ignore
+}
+
+initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUEMessage
+ PROCEDURE CODE id-initialUEMessage
+ CRITICALITY ignore
+}
+
+uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNASTransport
+ PROCEDURE CODE id-uplinkNASTransport
+ CRITICALITY ignore
+}
+nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASNonDeliveryIndication
+ PROCEDURE CODE id-NASNonDeliveryIndication
+ CRITICALITY ignore
+}
+
+handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverCancel
+ SUCCESSFUL OUTCOME HandoverCancelAcknowledge
+ PROCEDURE CODE id-HandoverCancel
+ CRITICALITY reject
+}
+
+reset S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE S1SetupRequest
+ SUCCESSFUL OUTCOME S1SetupResponse
+ UNSUCCESSFUL OUTCOME S1SetupFailure
+ PROCEDURE CODE id-S1Setup
+ CRITICALITY reject
+}
+
+END
diff --git a/asn1/s1ap/packet-s1ap-template.c b/asn1/s1ap/packet-s1ap-template.c
new file mode 100644
index 0000000000..89b11e43a5
--- /dev/null
+++ b/asn1/s1ap/packet-s1ap-template.c
@@ -0,0 +1,208 @@
+/* packet-s1ap.c
+ * Routines for E-UTRAN) S1 Application Protocol (S1AP) packet dissection
+ * Copyright 2007, Anders Broman <anders.broman@ericsson.com>
+ *
+ * $Id: packet-s1ap-template.c 22778 2007-09-03 16:40:51Z etxrab $
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Based on the RANAP dissector
+ *
+ * References: 3GPP TS 25.413 version 6.6.0 Release
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <epan/emem.h>
+#include <epan/strutil.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-gsm_map.h"
+#include "packet-s1ap.h"
+#include "packet-e212.h"
+#include "packet-sccp.h"
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+#define PNAME "S1 Application Protocol "
+#define PSNAME "S1AP"
+#define PFNAME "s1ap"
+
+#include "packet-s1ap-val.h"
+
+static dissector_handle_t s1ap_handle = NULL;
+
+/* Initialize the protocol and registered fields */
+static int proto_s1ap = -1;
+
+#include "packet-s1ap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_s1ap = -1;
+
+#include "packet-s1ap-ett.c"
+
+/* Global variables */
+static guint32 ProcedureCode;
+static guint32 ProtocolIE_ID;
+static guint32 ProtocolExtensionID;
+
+/* Dissector tables */
+static dissector_table_t s1ap_ies_dissector_table;
+static dissector_table_t s1ap_ies_p1_dissector_table;
+static dissector_table_t s1ap_ies_p2_dissector_table;
+static dissector_table_t s1ap_extension_dissector_table;
+static dissector_table_t s1ap_proc_imsg_dissector_table;
+static dissector_table_t s1ap_proc_sout_dissector_table;
+static dissector_table_t s1ap_proc_uout_dissector_table;
+static dissector_table_t s1ap_proc_out_dissector_table;
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+
+#include "packet-s1ap-fn.c"
+
+static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static int dissect_OutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ return (dissector_try_port(s1ap_proc_out_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+}
+
+static void
+dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ proto_item *s1ap_item = NULL;
+ proto_tree *s1ap_tree = NULL;
+
+ /* make entry in the Protocol column on summary display */
+ if (check_col(pinfo->cinfo, COL_PROTOCOL))
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "S1AP");
+
+ /* create the s1ap protocol tree */
+ s1ap_item = proto_tree_add_item(tree, proto_s1ap, tvb, 0, -1, FALSE);
+ s1ap_tree = proto_item_add_subtree(s1ap_item, ett_s1ap);
+
+ dissect_S1AP_PDU_PDU(tvb, pinfo, s1ap_tree);
+}
+
+/*--- proto_register_s1ap -------------------------------------------*/
+void proto_register_s1ap(void) {
+
+ /* List of fields */
+
+ static hf_register_info hf[] = {
+
+#include "packet-s1ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_s1ap,
+#include "packet-s1ap-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_s1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_s1ap, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register dissector */
+ register_dissector("s1ap", dissect_s1ap, proto_s1ap);
+ s1ap_handle = find_dissector("s1ap");
+
+ /* Register dissector tables */
+ s1ap_ies_dissector_table = register_dissector_table("s1ap.ies", "S1AP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
+ s1ap_ies_p1_dissector_table = register_dissector_table("s1ap.ies.pair.first", "S1AP-PROTOCOL-IES-PAIR FirstValue", FT_UINT32, BASE_DEC);
+ s1ap_ies_p2_dissector_table = register_dissector_table("s1ap.ies.pair.second", "S1AP-PROTOCOL-IES-PAIR SecondValue", FT_UINT32, BASE_DEC);
+ s1ap_extension_dissector_table = register_dissector_table("s1ap.extension", "S1AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
+ s1ap_proc_imsg_dissector_table = register_dissector_table("s1ap.proc.imsg", "S1AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
+ s1ap_proc_sout_dissector_table = register_dissector_table("s1ap.proc.sout", "S1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
+ s1ap_proc_uout_dissector_table = register_dissector_table("s1ap.proc.uout", "S1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
+ s1ap_proc_out_dissector_table = register_dissector_table("s1ap.proc.out", "S1AP-ELEMENTARY-PROCEDURE Outcome", FT_UINT32, BASE_DEC);
+
+
+}
+
+
+/*--- proto_reg_handoff_s1ap ---------------------------------------*/
+void
+proto_reg_handoff_s1ap(void)
+{
+
+ dissector_add("sctp.port", 0, s1ap_handle);
+
+#include "packet-s1ap-dis-tab.c"
+}
+
+
diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf
new file mode 100644
index 0000000000..ceb1ca8429
--- /dev/null
+++ b/asn1/s1ap/s1ap.cnf
@@ -0,0 +1,374 @@
+# s1ap.cnf
+# s1ap conformation file
+
+# $Id$
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.EXPORTS
+
+#.PDU_NEW
+S1AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(s1ap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
+
+
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+#.FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
+#.FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
+
+#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+#.FN_FTR ProcedureCode
+ if (check_col(actx->pinfo->cinfo, COL_INFO))
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, s1ap_ProcedureCode_vals,
+ "unknown message"));
+#.END
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-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, 0 }
+ };
+ asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+#.END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+#.FN_PARS ProtocolIE-ContainerPairList
+MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+#.FN_HDR ProtocolIE-ContainerPairList
+ static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+ { "lowerBound", ASN1_PAR_INTEGER },
+ { "upperBound", ASN1_PAR_INTEGER },
+ { NULL, 0 }
+ };
+ asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+#.END
+
+#RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+
+#ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfRABs, {IEsSetParam} }
+#.FN_BODY ProtocolError-IE-ContainerList
+ asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
+ asn1_param_push_integer(%(ACTX)s, 1);
+ asn1_param_push_integer(%(ACTX)s, maxNrOfRABs);
+%(DEFAULT_BODY)s
+ asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
+#.END
+
+#.END
+
+#.FN_BODY NAS-PDU VAL_PTR = &nas_pdu_tvb
+ tvbuff_t *nas_pdu_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (nas_pdu_tvb)
+ dissector_try_port(nas_pdu_dissector_table, 0x1, nas_pdu_tvb, %(ACTX)s->pinfo, proto_tree_get_root(tree));
+#.END
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+# TBCD-STRING ::= OCTET STRING
+
+#.FN_BODY PLMNidentity VAL_PTR =
+ tvbuff_t *parameter_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, tree, 0);
+#.END
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(s1ap_ProtocolIE_ID_vals)
+
+#.ASSIGN_VALUE_TO_TYPE # S1AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+
+id-HandoverPreparation ProcedureCode
+id-HandoverResourceAllocation ProcedureCode
+id-HandoverNotification ProcedureCode
+id-PathSwitchRequest ProcedureCode
+id-HandoverCancel ProcedureCode
+id-SAEBearerSetup ProcedureCode
+id-SAEBearerModify ProcedureCode
+id-SAEBearerRelease ProcedureCode
+id-SAEBearerReleaseRequest ProcedureCode
+id-InitialContextSetup ProcedureCode
+id-Paging ProcedureCode
+id-downlinkNASTransport ProcedureCode
+id-initialUEMessage ProcedureCode
+id-uplinkNASTransport ProcedureCode
+id-Reset ProcedureCode
+id-ErrorIndication ProcedureCode
+id-NASNonDeliveryIndication ProcedureCode
+id-S1Setup ProcedureCode
+id-UEContextReleaseRequest ProcedureCode
+
+# ProtocolIE-ID
+id-MME-UE-S1AP-ID ProtocolIE-ID
+id-HandoverType ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-SourceID ProtocolIE-ID
+id-TargetID ProtocolIE-ID
+id-Intra-LTEHOInformationReq ProtocolIE-ID
+id-LTEtoUTRANHOInformationReq ProtocolIE-ID
+id-LTEtoGERANHOInformationReq ProtocolIE-ID
+id-eNB-UE-S1AP-ID ProtocolIE-ID
+id-Intra-LTEHOInformationRes ProtocolIE-ID
+id-LTEtoUTRANHOInformationRes ProtocolIE-ID
+id-LTEtoGERANHOInformationRes ProtocolIE-ID
+id-SAEBearerSubjecttoDataForwardingList ProtocolIE-ID
+id-SAEBearertoReleaseListHOCmd ProtocolIE-ID
+id-SAEBearerDataForwardingItem ProtocolIE-ID
+id-SAEBearerReleaseItemBearerRelComp ProtocolIE-ID
+id-SAEBearerToBeSetupListBearerSUReq ProtocolIE-ID
+id-SAEBearerToBeSetupItemBearerSUReq ProtocolIE-ID
+id-SAEBearerAdmittedList ProtocolIE-ID
+id-SAEBearerFailedToSetupListHOReqAck ProtocolIE-ID
+id-SAEBearerAdmittedItem ProtocolIE-ID
+id-SAEBearerFailedtoSetupItemHOReqAck ProtocolIE-ID
+id-SAEBearerToBeSwitchedDLList ProtocolIE-ID
+id-SAEBearerToBeSwitchedDLItem ProtocolIE-ID
+id-SAEBearerToBeSetupListCtxtSUReq ProtocolIE-ID
+id-TraceActivation ProtocolIE-ID
+id-NAS-PDU ProtocolIE-ID
+id-SAEBearerToBeSetupItemHOReq ProtocolIE-ID
+id-SAEBearerSetupListBearerSURes ProtocolIE-ID
+id-SAEBearerFailedToSetupListBearerSURes ProtocolIE-ID
+id-SAEBearerToBeModifiedListBearerModReq ProtocolIE-ID
+id-SAEBearerModifyListBearerModRes ProtocolIE-ID
+#id-SAEBearerFailedToModifyList ProtocolIE-ID
+id-SAEBearerToBeReleasedList ProtocolIE-ID
+id-SAEBearerReleaseListBearerRelComp ProtocolIE-ID
+id-SAEBearerFailedToReleaseList ProtocolIE-ID
+id-SAEBearerItem ProtocolIE-ID
+id-SAEBearerToBeModifiedItemBearerModReq ProtocolIE-ID
+id-SAEBearerModifyItemBearerModRes ProtocolIE-ID
+id-SAEBearerReleaseItem ProtocolIE-ID
+id-SAEBearerSetupItemBearerSURes ProtocolIE-ID
+id-Security-Information ProtocolIE-ID
+id-HandoverRestrictionList ProtocolIE-ID
+id-s-TMSI ProtocolIE-ID
+id-pagingDRX ProtocolIE-ID
+id-pagingCause ProtocolIE-ID
+id-TAIdList ProtocolIE-ID
+id-TAIdItem ProtocolIE-ID
+id-SAEBearerFailedToSetupListCtxtSURes ProtocolIE-ID
+id-SAEBearerReleaseItemHOCmd ProtocolIE-ID
+id-SAEBearerSetupItemCtxtSURes ProtocolIE-ID
+id-SAEBearerSetupListCtxtSURes ProtocolIE-ID
+id-SAEBearerToBeSetupItemCtxtSUReq ProtocolIE-ID
+id-SAEBearerToBeSetupListHOReq ProtocolIE-ID
+id-GERANtoLTEHOInformationReq ProtocolIE-ID
+id-GERANtoLTEHOInformationRes ProtocolIE-ID
+id-UTRANtoLTEHOInformationReq ProtocolIE-ID
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-ENB-ID ProtocolIE-ID
+id-eNBname ProtocolIE-ID
+id-MMEname ProtocolIE-ID
+id-NRIs ProtocolIE-ID
+id-ServedPLMNs ProtocolIE-ID
+id-SupportedTAIs ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-aggregateMaximumBitrate ProtocolIE-ID
+id-TAId ProtocolIE-ID
+id-ServingPLMN ProtocolIE-ID
+#.END
+
+#.REGISTER_NEW
+
+#S1AP-PROTOCOL-IES
+MME-UE-S1AP-ID N s1ap.ies id-MME-UE-S1AP-ID
+HandoverType N s1ap.ies id-HandoverType
+Cause N s1ap.ies id-Cause
+SourceID N s1ap.ies id-SourceID
+TargetID N s1ap.ies id-TargetID
+Intra-LTEHOInformationReq N s1ap.ies id-Intra-LTEHOInformationReq
+LTEtoUTRANHOInformationReq N s1ap.ies id-LTEtoUTRANHOInformationReq
+LTEtoGERANHOInformationReq N s1ap.ies id-LTEtoGERANHOInformationReq
+ENB-UE-S1AP-ID N s1ap.ies id-eNB-UE-S1AP-ID
+Intra-LTEHOInformationRes N s1ap.ies id-Intra-LTEHOInformationRes
+LTEtoUTRANHOInformationRes N s1ap.ies id-LTEtoUTRANHOInformationRes
+LTEtoGERANHOInformationRes N s1ap.ies id-LTEtoGERANHOInformationRes
+SAEBearerSubjecttoDataForwardingList N s1ap.ies id-SAEBearerSubjecttoDataForwardingList
+SAEBearertoReleaseListHOCmd N s1ap.ies id-SAEBearertoReleaseListHOCmd
+SAEBearerDataForwardingItem N s1ap.ies id-SAEBearerDataForwardingItem
+SAEBearerReleaseItemBearerRelComp N s1ap.ies id-SAEBearerReleaseItemBearerRelComp
+SAEBearerToBeSetupListBearerSUReq N s1ap.ies id-SAEBearerToBeSetupListBearerSUReq
+SAEBearerToBeSetupItemBearerSUReq N s1ap.ies id-SAEBearerToBeSetupItemBearerSUReq
+SAEBearerAdmittedList N s1ap.ies id-SAEBearerAdmittedList
+SAEBearerFailedtoSetupListHOReqAck N s1ap.ies id-SAEBearerFailedToSetupListHOReqAck
+SAEBearerAdmittedItem N s1ap.ies id-SAEBearerAdmittedItem
+SAEBearerFailedToSetupItemHOReqAck N s1ap.ies id-SAEBearerFailedtoSetupItemHOReqAck
+SAEBearerToBeSwitchedDLList N s1ap.ies id-SAEBearerToBeSwitchedDLList
+SAEBearerToBeSwitchedDLItem N s1ap.ies id-SAEBearerToBeSwitchedDLItem
+SAEBearerToBeSetupListCtxtSUReq N s1ap.ies id-SAEBearerToBeSetupListCtxtSUReq
+TraceActivation N s1ap.ies id-TraceActivation
+NAS-PDU N s1ap.ies id-NAS-PDU
+SAEBearerToBeSetupItemHOReq N s1ap.ies id-SAEBearerToBeSetupItemHOReq
+SAEBearerSetupListBearerSURes N s1ap.ies id-SAEBearerSetupListBearerSURes
+SAEBearerList N s1ap.ies id-SAEBearerFailedToSetupListBearerSURes
+SAEBearerToBeModifiedListBearerModReq N s1ap.ies id-SAEBearerToBeModifiedListBearerModReq
+SAEBearerModifyListBearerModRes N s1ap.ies id-SAEBearerModifyListBearerModRes
+SAEBearerList N s1ap.ies id-SAEBearerFailedToModifyList
+SAEBearerList N s1ap.ies id-SAEBearerToBeReleasedList
+SAEBearerReleaseListBearerRelComp N s1ap.ies id-SAEBearerReleaseListBearerRelComp
+SAEBearerList N s1ap.ies id-SAEBearerFailedToReleaseList
+SAEBearerItem N s1ap.ies id-SAEBearerItem
+SAEBearerToBeModifiedItemBearerModReq N s1ap.ies id-SAEBearerToBeModifiedItemBearerModReq
+SAEBearerModifyItemBearerModRes N s1ap.ies id-SAEBearerModifyItemBearerModRes
+#SAEBearerReleaseItem N s1ap.ies id-SAEBearerReleaseItem
+SAEBearerSetupItemBearerSURes N s1ap.ies id-SAEBearerSetupItemBearerSURes
+SecurityInformation N s1ap.ies id-Security-Information
+HandoverRestrictionList N s1ap.ies id-HandoverRestrictionList
+S-TMSI N s1ap.ies id-s-TMSI
+PagingDRX N s1ap.ies id-pagingDRX
+PagingCause N s1ap.ies id-pagingCause
+TAIdList N s1ap.ies id-TAIdList
+TAIdItem N s1ap.ies id-TAIdItem
+SAEBearerList N s1ap.ies id-SAEBearerFailedToSetupListCtxtSURes
+SAEBearerReleaseItemHOCmd N s1ap.ies id-SAEBearerReleaseItemHOCmd
+SAEBearerSetupItemCtxtSURes N s1ap.ies id-SAEBearerSetupItemCtxtSURes
+SAEBearerSetupListCtxtSURes N s1ap.ies id-SAEBearerSetupListCtxtSURes
+SAEBearerToBeSetupItemCtxtSUReq N s1ap.ies id-SAEBearerToBeSetupItemCtxtSUReq
+SAEBearerToBeSetupListHOReq N s1ap.ies id-SAEBearerToBeSetupListHOReq
+GERANtoLTEHOInformationReq N s1ap.ies id-GERANtoLTEHOInformationReq
+GERANtoLTEHOInformationRes N s1ap.ies id-GERANtoLTEHOInformationRes
+UTRANtoLTEHOInformationReq N s1ap.ies id-UTRANtoLTEHOInformationReq
+UTRANtoLTEHOInformationRes N s1ap.ies id-UTRANtoLTEHOInformationRes
+CriticalityDiagnostics N s1ap.ies id-CriticalityDiagnostics
+ENB-ID N s1ap.ies id-ENB-ID
+ENBname N s1ap.ies id-eNBname
+MMEname N s1ap.ies id-MMEname
+NRIs N s1ap.ies id-NRIs
+ServedPLMNs N s1ap.ies id-ServedPLMNs
+SupportedTAIs N s1ap.ies id-SupportedTAIs
+TimeToWait N s1ap.ies id-TimeToWait
+AggregateMaximumBitrate N s1ap.ies id-aggregateMaximumBitrate
+TAId N s1ap.ies id-TAId
+PLMNidentity N s1ap.ies id-ServingPLMN
+
+#S1AP-PROTOCOL-IES-PAIR
+#RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem
+#RAB-SetupOrModifyItemSecond N s1ap.ies.pair.second id-RAB-SetupOrModifyItem
+
+#NBAP-PROTOCOL-EXTENSION
+#RAB-Parameters N s1ap.extension id-AlternativeRABConfiguration
+#Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf N s1ap.extension id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf
+
+#NBAP-ELEMENTARY-PROCEDURE
+HandoverRequired N s1ap.proc.imsg id-HandoverPreparation
+HandoverCommand N s1ap.proc.sout id-HandoverPreparation
+HandoverPreparationFailure N s1ap.proc.uout id-HandoverPreparation
+
+HandoverRequest N s1ap.proc.imsg id-HandoverResourceAllocation
+HandoverRequestAcknowledge N s1ap.proc.sout id-HandoverResourceAllocation
+HandoverFailure N s1ap.proc.uout id-HandoverResourceAllocation
+
+HandoverNotify N s1ap.proc.imsg id-HandoverNotification
+
+PathSwitchRequest N s1ap.proc.imsg id-PathSwitchRequest
+PathSwitchRequestAcknowledge N s1ap.proc.sout id-PathSwitchRequest
+PathSwitchRequestFailure N s1ap.proc.uout id-PathSwitchRequest
+
+SAEBearerSetupRequest N s1ap.proc.imsg id-SAEBearerSetup
+SAEBearerSetupResponse N s1ap.proc.sout id-SAEBearerSetup
+
+SAEBearerModifyRequest N s1ap.proc.imsg id-SAEBearerModify
+SAEBearerModifyResponse N s1ap.proc.sout id-SAEBearerModify
+
+SAEBearerReleaseCommand N s1ap.proc.imsg id-SAEBearerRelease
+SAEBearerReleaseComplete N s1ap.proc.sout id-SAEBearerRelease
+
+SAEBearerReleaseRequest N s1ap.proc.imsg id-SAEBearerReleaseRequest
+
+InitialContextSetupRequest N s1ap.proc.imsg id-InitialContextSetup
+InitialContextSetupResponse N s1ap.proc.sout id-InitialContextSetup
+InitialContextSetupFailure N s1ap.proc.uout id-InitialContextSetup
+
+UEContextReleaseRequest N s1ap.proc.imsg id-UEContextReleaseRequest
+
+Paging N s1ap.proc.imsg id-Paging
+
+DownlinkNASTransport N s1ap.proc.imsg id-downlinkNASTransport
+
+InitialUEMessage N s1ap.proc.imsg id-initialUEMessage
+
+UplinkNASTransport N s1ap.proc.imsg id-uplinkNASTransport
+
+NASNonDeliveryIndication N s1ap.proc.imsg id-NASNonDeliveryIndication
+
+HandoverCancel N s1ap.proc.imsg id-HandoverCancel
+HandoverCancelAcknowledge N s1ap.proc.sout id-HandoverCancel
+
+Reset N s1ap.proc.imsg id-Reset
+ResetAcknowledge N s1ap.proc.sout id-Reset
+
+ErrorIndication N s1ap.proc.imsg id-ErrorIndication
+
+S1SetupRequest N s1ap.proc.imsg id-S1Setup
+S1SetupResponse N s1ap.proc.sout id-S1Setup
+S1SetupFailure N s1ap.proc.uout id-S1Setup
+#.END \ No newline at end of file