From b1c6a2c3efe728c6e834495d36d207f04f9105ae Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 29 Aug 2015 09:33:12 +0200 Subject: add RUA asn.1 syntax from 3GPP TS 25.468 V12.1.0 (2014-12) --- asn1/rua/RUA-CommonDataTypes.asn | 46 ++++++++++ asn1/rua/RUA-Constants.asn | 55 +++++++++++ asn1/rua/RUA-Containers.asn | 153 +++++++++++++++++++++++++++++++ asn1/rua/RUA-IEs.asn | 191 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 445 insertions(+) create mode 100644 asn1/rua/RUA-CommonDataTypes.asn create mode 100644 asn1/rua/RUA-Constants.asn create mode 100644 asn1/rua/RUA-Containers.asn create mode 100644 asn1/rua/RUA-IEs.asn diff --git a/asn1/rua/RUA-CommonDataTypes.asn b/asn1/rua/RUA-CommonDataTypes.asn new file mode 100644 index 0000000..da7ed22 --- /dev/null +++ b/asn1/rua/RUA-CommonDataTypes.asn @@ -0,0 +1,46 @@ +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +RUA-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +umts-Access (20) modules (3) rua(5) version1 (1) rUA-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + + +ProcedureCode ::= INTEGER (0..255) + +PrivateIE-ID ::= CHOICE { + local INTEGER (0..65535), + global OBJECT IDENTIFIER +} + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome } + +END diff --git a/asn1/rua/RUA-Constants.asn b/asn1/rua/RUA-Constants.asn new file mode 100644 index 0000000..636b4d5 --- /dev/null +++ b/asn1/rua/RUA-Constants.asn @@ -0,0 +1,55 @@ +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +RUA-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +umts-Access (20) modules (3) rua(5) version1 (1) rUA-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM RUA-CommonDataTypes; + + +-- ************************************************************** +-- +-- Elementary Procedures +-- +id-Connect ProcedureCode ::= 1 +id-DirectTransfer ProcedureCode ::= 2 +id-Disconnect ProcedureCode ::= 3 +id-ConnectionlessTransfer ProcedureCode ::= 4 +id-ErrorIndication ProcedureCode ::= 5 +id-privateMessage ProcedureCode ::= 6 + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** +maxNrOfErrors INTEGER ::= 256 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-Cause ProtocolIE-ID ::= 1 +id-CriticalityDiagnostics ProtocolIE-ID ::= 2 +id-Context-ID ProtocolIE-ID ::= 3 +id-RANAP-Message ProtocolIE-ID ::= 4 +id-IntraDomainNasNodeSelector ProtocolIE-ID ::= 5 +id-Establishment-Cause ProtocolIE-ID ::= 6 +id-CN-DomainIndicator ProtocolIE-ID ::= 7 +id-CSGMembershipStatus ProtocolIE-ID ::= 9 + + +END diff --git a/asn1/rua/RUA-Containers.asn b/asn1/rua/RUA-Containers.asn new file mode 100644 index 0000000..fff938b --- /dev/null +++ b/asn1/rua/RUA-Containers.asn @@ -0,0 +1,153 @@ +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +RUA-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +umts-Access (20) modules (3) rua(5) version1 (1) rUA-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID, + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs +FROM RUA-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +RUA-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +RUA-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +RUA-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {RUA-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {RUA-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {RUA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id RUA-PROTOCOL-IES.&id ({IEsSetParam}), + criticality RUA-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value RUA-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RUA-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {RUA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {RUA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id RUA-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality RUA-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue RUA-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {RUA-PRIVATE-IES : IEsSetParam } ::= + SEQUENCE (SIZE (1.. maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {RUA-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id RUA-PRIVATE-IES.&id ({IEsSetParam}), + criticality RUA-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value RUA-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + + +END diff --git a/asn1/rua/RUA-IEs.asn b/asn1/rua/RUA-IEs.asn new file mode 100644 index 0000000..ca594b8 --- /dev/null +++ b/asn1/rua/RUA-IEs.asn @@ -0,0 +1,191 @@ +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +RUA-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +umts-Access (20) modules (3) rua(5) version1 (1) rUA-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + maxNrOfErrors +FROM RUA-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM RUA-CommonDataTypes + + ProtocolExtensionContainer{}, + RUA-PROTOCOL-EXTENSION +FROM RUA-Containers; + + +CN-DomainIndicator ::= ENUMERATED { + cs-domain, + ps-domain +} + +CSGMembershipStatus ::= ENUMERATED { + member, + non-member, + ... +} + +Establishment-Cause ::= ENUMERATED { + emergency-call, + normal-call, + ... +} + + + + + +Context-ID ::= BIT STRING (SIZE(24)) + +IntraDomainNasNodeSelector ::= SEQUENCE { + version CHOICE { + release99 SEQUENCE { + cn-Type CHOICE { + gsm-Map-IDNNS Gsm-map-IDNNS, + ansi-41-IDNNS Ansi-41-IDNNS + } + }, + later SEQUENCE { + futurecoding BIT STRING (SIZE (15)) + } + } +} + +Gsm-map-IDNNS ::= SEQUENCE { + routingbasis CHOICE { + localPTMSI SEQUENCE { + routingparameter RoutingParameter + }, + tMSIofsamePLMN SEQUENCE { + routingparameter RoutingParameter + }, + tMSIofdifferentPLMN SEQUENCE { + routingparameter RoutingParameter + }, + iMSIresponsetopaging SEQUENCE { + routingparameter RoutingParameter + }, + iMSIcauseUEinitiatedEvent SEQUENCE { + routingparameter RoutingParameter + }, + iMEI SEQUENCE { + routingparameter RoutingParameter + }, + spare2 SEQUENCE { + routingparameter RoutingParameter + }, + spare1 SEQUENCE { + routingparameter RoutingParameter + } + }, + -- dummy is not used in this version of the specification and + -- it should be ignored by the receiver. + dummy BOOLEAN +} + + +Ansi-41-IDNNS ::= BIT STRING (SIZE (14)) + +RANAP-Message ::= OCTET STRING + +RoutingParameter ::= BIT STRING (SIZE (10)) + + +-- ************************************************************** +-- +-- Cause IE +-- +-- ************************************************************** + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + transport CauseTransport, + protocol CauseProtocol, + misc CauseMisc, + ... +} +CauseRadioNetwork ::= ENUMERATED { + normal, + connect-failed, + network-release, + unspecified, + ... +} +CauseTransport ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseMisc ::= ENUMERATED { + processing-overload, + hardware-failure, + o-and-m-intervention, + unspecified, + ... +} + +-- ************************************************************** +-- +-- CriticalityDiagnostics +-- +-- ************************************************************** + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... + } + +CriticalityDiagnostics-IE-List-ExtIEs RUA-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= { + ... +} + + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +END -- cgit v1.2.3