aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/hnbap
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-08-30 16:16:23 +0200
committerHarald Welte <laforge@gnumonks.org>2015-08-30 17:11:20 +0200
commit355d9513c0359ec10de79cc12b6e8a2d4e81e8d8 (patch)
tree8794c0f9a4d9e1ee03d708c30b8906950b3aae83 /asn1/hnbap
parentee77cff224bd414aee47142d9af6f998b1ee66d1 (diff)
HNBAP 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.
Diffstat (limited to 'asn1/hnbap')
-rw-r--r--asn1/hnbap/HNBAP-IEs.asn132
-rw-r--r--asn1/hnbap/HNBAP-PDU.asn51
2 files changed, 76 insertions, 107 deletions
diff --git a/asn1/hnbap/HNBAP-IEs.asn b/asn1/hnbap/HNBAP-IEs.asn
index c302636..775d25b 100644
--- a/asn1/hnbap/HNBAP-IEs.asn
+++ b/asn1/hnbap/HNBAP-IEs.asn
@@ -26,16 +26,17 @@ IMPORTS
FROM HNBAP-Constants
+ IE
+FROM HNBAP-PDU
+
+ maxProtocolExtensions,
Criticality,
ProcedureCode,
ProtocolIE-ID,
TriggeringMessage
-FROM HNBAP-CommonDataTypes
-
- ProtocolExtensionContainer{},
- HNBAP-PROTOCOL-EXTENSION
-FROM HNBAP-Containers;
+FROM HNBAP-CommonDataTypes;
+IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE
--A
Access-stratum-release-indicator ::= ENUMERATED {r99,
@@ -122,7 +123,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,
...
}
@@ -131,18 +132,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 HNBAP-PROTOCOL-EXTENSION ::= {
- ...
-}
-
-CriticalityDiagnostics-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- ...
-}
-
CSG-ID ::= BIT STRING (SIZE (27))
CSG-Capability ::= ENUMERATED {
@@ -161,11 +154,7 @@ CGI ::= SEQUENCE {
pLMNidentity PLMNidentity,
lAC LAC,
cI CI,
- iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
-}
-
-CGI-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- ...
+ iE-Extensions IE-Extensions OPTIONAL
}
CI ::= OCTET STRING (SIZE (2))
@@ -183,11 +172,7 @@ ESN ::= BIT STRING (SIZE(32))
GeographicalLocation ::= SEQUENCE {
geographicalCoordinates GeographicalCoordinates,
altitudeAndDirection AltitudeAndDirection,
- iE-Extensions ProtocolExtensionContainer { { GeographicLocation-ExtIEs} } OPTIONAL,
- ...
-}
-
-GeographicLocation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -195,11 +180,7 @@ GeographicalCoordinates ::= SEQUENCE {
latitudeSign ENUMERATED {north, south},
latitude INTEGER (0..8388607),
longitude INTEGER (-8388608..8388607),
- iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
- ...
-}
-
-GeographicalCoordinates-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -219,11 +200,7 @@ HNB-Cell-Access-Mode::= ENUMERATED {
HNB-Cell-Identifier ::= SEQUENCE {
pLMNidentity PLMNidentity,
cellIdentity CellIdentity,
- iE-Extensions ProtocolExtensionContainer { { HNB-Cell-Identifier-ExtIEs } } OPTIONAL,
- ...
-}
-
-HNB-Cell-Identifier-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -242,11 +219,7 @@ HNB-RNL-Identity ::= CHOICE {
HNBConfigInfo ::= SEQUENCE {
hnb-RNL-Identity HNB-RNL-Identity,
configurationInformation ConfigurationInformation,
- iE-Extensions ProtocolExtensionContainer { { HNBConfigInfo-ExtIEs } } OPTIONAL,
- ...
-}
-
-HNBConfigInfo-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -261,52 +234,29 @@ HNBConfigurationInformationProvided ::= SEQUENCE {
cSG-ID CSG-ID OPTIONAL,
hNB-Cell-Access-Mode HNB-Cell-Access-Mode,
iurh-Signalling-TNL-AddressList Iurh-Signalling-TNL-AddressList,
- iE-Extensions ProtocolExtensionContainer { { HNBConfigurationInformationProvided-ExtIEs } } OPTIONAL,
- ...
-}
-
-HNBConfigurationInformationProvided-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- { ID id-S-RNTIPrefix CRITICALITY ignore EXTENSION S-RNTIPrefix PRESENCE optional }|
- { ID id-URAIdentityList CRITICALITY ignore EXTENSION URAIdentityList PRESENCE optional },
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
HNBConfigurationInformationMissing ::= SEQUENCE {
cause Cause,
- iE-Extensions ProtocolExtensionContainer { { HNBConfigurationInformationMissing-ExtIEs } } OPTIONAL,
- ...
-}
-
-HNBConfigurationInformationMissing-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
HNB-Location-Information ::= SEQUENCE {
macroCoverageInfo MacroCoverageInformation OPTIONAL,
geographicalCoordinates GeographicalLocation OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { HNB-Location-Information-ExtIEs } } OPTIONAL,
- ...
-}
-
-HNB-Location-Information-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
--- Extension for release-8 to support IP address for location verification --
-{ID id-HNB-Internet-Information CRITICALITY reject EXTENSION IP-Address PRESENCE optional },
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
-
-
HNB-Identity ::= SEQUENCE {
hNB-Identity-Info HNB-Identity-Info,
- iE-Extensions ProtocolExtensionContainer { { HNB-Identity-ExtIEs } } OPTIONAL,
- ...
-}
-
-HNB-Identity-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
-
HNB-Identity-Info ::= OCTET STRING (SIZE (1..255))
--I
@@ -328,11 +278,7 @@ IP-Address ::= SEQUENCE {
ipv6info Ipv6Address,
...
},
- iE-Extensions ProtocolExtensionContainer { { IP-Address-ExtIEs } } OPTIONAL,
- ...
-}
-
-IP-Address-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -358,11 +304,7 @@ LAI ::= SEQUENCE {
MacroCoverageInformation ::= SEQUENCE {
cellIdentity MacroCellID,
- iE-Extensions ProtocolExtensionContainer { { MacroCoverageInformation-ExtIEs } } OPTIONAL,
- ...
-}
-
-MacroCoverageInformation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -392,11 +334,7 @@ NeighbourInfoRequestList ::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF NeighbourI
NeighbourInfoRequestItem ::= SEQUENCE {
hnb-RNL-Identity HNB-RNL-Identity,
- iE-Extensions ProtocolExtensionContainer { { NeighbourInfoRequestItem-ExtIEs } } OPTIONAL,
- ...
-}
-
-NeighbourInfoRequestItem-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -427,14 +365,10 @@ RABListItem ::= SEQUENCE {
old-transport-Info TransportInfo,
new-transport-Info TransportInfo,
cn-domain-indicator CN-DomainIndicator,
- iE-Extensions ProtocolExtensionContainer { { RABListItem-ExtIEs } } OPTIONAL,
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
-RABListItem-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- ...
-}
-
RAC ::= OCTET STRING(SIZE(1))
RAI ::= SEQUENCE {
@@ -474,24 +408,16 @@ TransportInfo ::= SEQUENCE {
bindingID BindingID,
...
},
- iE-Extensions ProtocolExtensionContainer { { TransportInfo-ExtIEs } } OPTIONAL,
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
-TransportInfo-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- ...
-}
-
TransportLayerAddress ::= BIT STRING(SIZE(1..160,...))
Tunnel-Information ::= SEQUENCE {
iP-Address IP-Address,
uDP-Port-Number UDP-Port-Number OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { Tunnel-Information-ExtIEs } } OPTIONAL,
- ...
-}
-
-Tunnel-Information-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
@@ -507,24 +433,16 @@ UDP-Port-Number ::= OCTET STRING(SIZE(2))
UE-Capabilities ::= SEQUENCE {
access-stratum-release-indicator Access-stratum-release-indicator,
csg-capability CSG-Capability,
- iE-Extensions ProtocolExtensionContainer { { UE-Capabilities-ExtIEs } } OPTIONAL,
+ iE-Extensions IE-Extensions OPTIONAL,
...
}
-UE-Capabilities-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- ...
-}
-
UTRANCellID ::= SEQUENCE {
lAC LAC,
rAC RAC,
pLMNidentity PLMNidentity,
uTRANcellID CellIdentity,
- iE-Extensions ProtocolExtensionContainer { {UTRANCellID-ExtIEs} } OPTIONAL
-}
-
-UTRANCellID-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
- ...
+ iE-Extensions IE-Extensions OPTIONAL
}
diff --git a/asn1/hnbap/HNBAP-PDU.asn b/asn1/hnbap/HNBAP-PDU.asn
new file mode 100644
index 0000000..299fffb
--- /dev/null
+++ b/asn1/hnbap/HNBAP-PDU.asn
@@ -0,0 +1,51 @@
+HNBAP-PDU {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM HNBAP-CommonDataTypes
+
+ maxProtocolIEs
+
+FROM HNBAP-Constants;
+
+HNBAP-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