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 +# 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 +# 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 +# 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 + * + * $Id: packet-s1ap-template.c 22778 2007-09-03 16:40:51Z etxrab $ + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * 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 +#include +#include + +#include +#include +#include +#include +#include + +#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, ¶meter_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