RUA ASN.1 Rewrite to avoid information object classes

If we avoid using Information Object Classes in the IE definitions
(which are only used for Extension Containers), then we can compile the
ASN.1 source using Lev Walkin's asn1c.
This commit is contained in:
Harald Welte 2015-08-30 17:46:36 +02:00
parent 4f119e58e9
commit ba404f9e48
3 changed files with 63 additions and 14 deletions

View File

@ -16,16 +16,17 @@ IMPORTS
maxNrOfErrors
FROM RUA-Constants
maxProtocolExtensions,
Criticality,
ProcedureCode,
ProtocolIE-ID,
TriggeringMessage
FROM RUA-CommonDataTypes
ProtocolExtensionContainer{},
RUA-PROTOCOL-EXTENSION
FROM RUA-Containers;
IE
FROM RUA-PDU;
IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE
CN-DomainIndicator ::= ENUMERATED {
cs-domain,
@ -160,7 +161,7 @@ CriticalityDiagnostics ::= SEQUENCE {
triggeringMessage TriggeringMessage OPTIONAL,
procedureCriticality Criticality OPTIONAL,
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
@ -169,19 +170,10 @@ CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
iECriticality Criticality,
iE-ID ProtocolIE-ID,
typeOfError TypeOfError,
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CriticalityDiagnostics-IE-List-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
...
}
CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
...
}
TypeOfError ::= ENUMERATED {
not-understood,
missing,

51
asn1/rua/RUA-PDU.asn Normal file
View File

@ -0,0 +1,51 @@
RUA-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) rua(5) version1 (1) rUA-PDU (255) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
Criticality,
ProcedureCode,
ProtocolIE-ID
FROM RUA-CommonDataTypes
maxProtocolIEs
FROM RUAP-Constants;
RUA-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
value ANY
}
END

6
asn1/rua/asn1c/Makefile Normal file
View File

@ -0,0 +1,6 @@
MOD=RUA
ASNS=../$(MOD)-CommonDataTypes.asn ../$(MOD)-Constants.asn ../$(MOD)-IEs.asn ../$(MOD)-PDU.asn
all: $(ASNS)
asn1c -gen-PER -fnative-types -fskeletons-copy $^