aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-08-30 19:49:16 +0200
committerHarald Welte <laforge@gnumonks.org>2015-08-30 19:57:43 +0200
commit8d6026742f7d34af2ee96a879e4793dd0ed9a435 (patch)
tree593ea4c5780e716435c5fb8a161cc2f147fd3658 /asn1
parent96ec96e3b40b08ed0ef139b84849207c95d863e2 (diff)
generate ASN.1 structures for each message withotu iformation object class
this is done semi-automatically using the asn1msgs.pl script.
Diffstat (limited to 'asn1')
-rwxr-xr-xasn1/asn1msgs.pl35
-rw-r--r--asn1/hnbap/HNBAP-PDU.asn99
-rw-r--r--asn1/ranap/RANAP-PDU.asn418
-rw-r--r--asn1/rua/RUA-PDU.asn33
4 files changed, 584 insertions, 1 deletions
diff --git a/asn1/asn1msgs.pl b/asn1/asn1msgs.pl
new file mode 100755
index 0000000..4b07a3b
--- /dev/null
+++ b/asn1/asn1msgs.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl -w
+#use strict;
+
+# small script to extract the types used in elementary procedures
+# {HNBAP,RUA,RANAP}-PDU-Descriptions.asn and print them in an ASN.1
+# format that will trigger asn1c to generate associated structures
+#
+# Usage: ./asn1enum.pl < HNBAP-PDU-Descriptions.asn
+
+my $l;
+my @a;
+
+while ($l = <STDIN>) {
+ chomp($l);
+ if ($l =~ /^\s*(\S+\s*\S+)\s+(\S+)\s*$/) {
+ if ($1 eq 'INITIATING MESSAGE' ||
+ $1 eq 'SUCCESSFUL OUTCOME' ||
+ $1 eq 'UNSUCCESSFUL OUTCOME' ||
+ $1 eq 'OUTCOME') {
+ push(@a, $2);
+ }
+ }
+}
+
+foreach my $k (@a) {
+ my $lk = $k;
+ my $firstchar = substr($lk, 0, 1);
+ if ($firstchar =~ /^[A-Z]/) {
+ substr($lk, 0, 1, lc($firstchar));
+ }
+ printf("%s ::= SEQUENCE {\n", $k);
+ printf(" %s-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,\n", $lk);
+ printf(" ...\n");
+ printf("}\n\n");
+}
diff --git a/asn1/hnbap/HNBAP-PDU.asn b/asn1/hnbap/HNBAP-PDU.asn
index f800b0d..6d32215 100644
--- a/asn1/hnbap/HNBAP-PDU.asn
+++ b/asn1/hnbap/HNBAP-PDU.asn
@@ -7,12 +7,14 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
+ maxProtocolIEs,
Criticality,
ProcedureCode,
ProtocolIE-ID
FROM HNBAP-CommonDataTypes;
+
HNBAP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
@@ -38,6 +40,103 @@ UnsuccessfulOutcome ::= SEQUENCE {
value ANY
}
+
+HNBRegisterRequest ::= SEQUENCE {
+ hnbRegisterRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+HNBRegisterAccept ::= SEQUENCE {
+ hnbRegisterAccept-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+HNBRegisterReject ::= SEQUENCE {
+ hnbRegisterReject-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UERegisterRequest ::= SEQUENCE {
+ ueRegisterRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UERegisterAccept ::= SEQUENCE {
+ ueRegisterAccept-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UERegisterReject ::= SEQUENCE {
+ ueRegisterReject-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UEDe-Register ::= SEQUENCE {
+ ueDe-Register-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+HNBDe-Register ::= SEQUENCE {
+ hnbDe-Register-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ErrorIndication ::= SEQUENCE {
+ errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+CSGMembershipUpdate ::= SEQUENCE {
+ csgMembershipUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+TNLUpdateRequest ::= SEQUENCE {
+ tnlUpdateRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+TNLUpdateResponse ::= SEQUENCE {
+ tnlUpdateResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+TNLUpdateFailure ::= SEQUENCE {
+ tnlUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+HNBConfigTransferRequest ::= SEQUENCE {
+ hnbConfigTransferRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+HNBConfigTransferResponse ::= SEQUENCE {
+ hnbConfigTransferResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationComplete ::= SEQUENCE {
+ relocationComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+U-RNTIQueryRequest ::= SEQUENCE {
+ u-RNTIQueryRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+U-RNTIQueryResponse ::= SEQUENCE {
+ u-RNTIQueryResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+PrivateMessage ::= SEQUENCE {
+ privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
diff --git a/asn1/ranap/RANAP-PDU.asn b/asn1/ranap/RANAP-PDU.asn
index 433efec..ec04f46 100644
--- a/asn1/ranap/RANAP-PDU.asn
+++ b/asn1/ranap/RANAP-PDU.asn
@@ -11,7 +11,11 @@ IMPORTS
ProcedureCode,
ProtocolIE-ID
-FROM RANAP-CommonDataTypes;
+FROM RANAP-CommonDataTypes
+
+ maxProtocolIEs
+
+FROM RANAP-Constants;
RANAP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
@@ -45,6 +49,418 @@ Outcome ::= SEQUENCE {
value ANY
}
+
+Iu-ReleaseCommand ::= SEQUENCE {
+ iu-ReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+Iu-ReleaseComplete ::= SEQUENCE {
+ iu-ReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationRequired ::= SEQUENCE {
+ relocationRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationCommand ::= SEQUENCE {
+ relocationCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationPreparationFailure ::= SEQUENCE {
+ relocationPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationRequest ::= SEQUENCE {
+ relocationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationRequestAcknowledge ::= SEQUENCE {
+ relocationRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationFailure ::= SEQUENCE {
+ relocationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationCancel ::= SEQUENCE {
+ relocationCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationCancelAcknowledge ::= SEQUENCE {
+ relocationCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SRNS-ContextRequest ::= SEQUENCE {
+ sRNS-ContextRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SRNS-ContextResponse ::= SEQUENCE {
+ sRNS-ContextResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SecurityModeCommand ::= SEQUENCE {
+ securityModeCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SecurityModeComplete ::= SEQUENCE {
+ securityModeComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SecurityModeReject ::= SEQUENCE {
+ securityModeReject-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+DataVolumeReportRequest ::= SEQUENCE {
+ dataVolumeReportRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+DataVolumeReport ::= SEQUENCE {
+ dataVolumeReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+Reset ::= SEQUENCE {
+ reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ResetAcknowledge ::= SEQUENCE {
+ resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RAB-ReleaseRequest ::= SEQUENCE {
+ rAB-ReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+Iu-ReleaseRequest ::= SEQUENCE {
+ iu-ReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationDetect ::= SEQUENCE {
+ relocationDetect-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RelocationComplete ::= SEQUENCE {
+ relocationComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+Paging ::= SEQUENCE {
+ paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+CommonID ::= SEQUENCE {
+ commonID-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+CN-InvokeTrace ::= SEQUENCE {
+ cN-InvokeTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+CN-DeactivateTrace ::= SEQUENCE {
+ cN-DeactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+LocationReportingControl ::= SEQUENCE {
+ locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+LocationReport ::= SEQUENCE {
+ locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+InitialUE-Message ::= SEQUENCE {
+ initialUE-Message-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+DirectTransfer ::= SEQUENCE {
+ directTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+Overload ::= SEQUENCE {
+ overload-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ErrorIndication ::= SEQUENCE {
+ errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SRNS-DataForwardCommand ::= SEQUENCE {
+ sRNS-DataForwardCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ForwardSRNS-Context ::= SEQUENCE {
+ forwardSRNS-Context-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RAB-AssignmentRequest ::= SEQUENCE {
+ rAB-AssignmentRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RAB-AssignmentResponse ::= SEQUENCE {
+ rAB-AssignmentResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+PrivateMessage ::= SEQUENCE {
+ privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ResetResource ::= SEQUENCE {
+ resetResource-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ResetResourceAcknowledge ::= SEQUENCE {
+ resetResourceAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RANAP-RelocationInformation ::= SEQUENCE {
+ rANAP-RelocationInformation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RAB-ModifyRequest ::= SEQUENCE {
+ rAB-ModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+LocationRelatedDataRequest ::= SEQUENCE {
+ locationRelatedDataRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+LocationRelatedDataResponse ::= SEQUENCE {
+ locationRelatedDataResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+LocationRelatedDataFailure ::= SEQUENCE {
+ locationRelatedDataFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+InformationTransferIndication ::= SEQUENCE {
+ informationTransferIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+InformationTransferConfirmation ::= SEQUENCE {
+ informationTransferConfirmation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+InformationTransferFailure ::= SEQUENCE {
+ informationTransferFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UESpecificInformationIndication ::= SEQUENCE {
+ uESpecificInformationIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+DirectInformationTransfer ::= SEQUENCE {
+ directInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UplinkInformationExchangeRequest ::= SEQUENCE {
+ uplinkInformationExchangeRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UplinkInformationExchangeResponse ::= SEQUENCE {
+ uplinkInformationExchangeResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UplinkInformationExchangeFailure ::= SEQUENCE {
+ uplinkInformationExchangeFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionStart ::= SEQUENCE {
+ mBMSSessionStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionStartResponse ::= SEQUENCE {
+ mBMSSessionStartResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionStartFailure ::= SEQUENCE {
+ mBMSSessionStartFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionUpdate ::= SEQUENCE {
+ mBMSSessionUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionUpdateResponse ::= SEQUENCE {
+ mBMSSessionUpdateResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionUpdateFailure ::= SEQUENCE {
+ mBMSSessionUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionStop ::= SEQUENCE {
+ mBMSSessionStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSSessionStopResponse ::= SEQUENCE {
+ mBMSSessionStopResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSUELinkingRequest ::= SEQUENCE {
+ mBMSUELinkingRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSUELinkingResponse ::= SEQUENCE {
+ mBMSUELinkingResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRegistrationRequest ::= SEQUENCE {
+ mBMSRegistrationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRegistrationResponse ::= SEQUENCE {
+ mBMSRegistrationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRegistrationFailure ::= SEQUENCE {
+ mBMSRegistrationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSCNDe-RegistrationRequest ::= SEQUENCE {
+ mBMSCNDe-RegistrationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSCNDe-RegistrationResponse ::= SEQUENCE {
+ mBMSCNDe-RegistrationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRABEstablishmentIndication ::= SEQUENCE {
+ mBMSRABEstablishmentIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRABReleaseRequest ::= SEQUENCE {
+ mBMSRABReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRABRelease ::= SEQUENCE {
+ mBMSRABRelease-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+MBMSRABReleaseFailure ::= SEQUENCE {
+ mBMSRABReleaseFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+EnhancedRelocationCompleteRequest ::= SEQUENCE {
+ enhancedRelocationCompleteRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+EnhancedRelocationCompleteResponse ::= SEQUENCE {
+ enhancedRelocationCompleteResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+EnhancedRelocationCompleteFailure ::= SEQUENCE {
+ enhancedRelocationCompleteFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+EnhancedRelocationCompleteConfirm ::= SEQUENCE {
+ enhancedRelocationCompleteConfirm-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationRequest ::= SEQUENCE {
+ rANAP-EnhancedRelocationInformationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+RANAP-EnhancedRelocationInformationResponse ::= SEQUENCE {
+ rANAP-EnhancedRelocationInformationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SRVCC-CSKeysRequest ::= SEQUENCE {
+ sRVCC-CSKeysRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+SRVCC-CSKeysResponse ::= SEQUENCE {
+ sRVCC-CSKeysResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UeRadioCapabilityMatchRequest ::= SEQUENCE {
+ ueRadioCapabilityMatchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+UeRadioCapabilityMatchResponse ::= SEQUENCE {
+ ueRadioCapabilityMatchResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
diff --git a/asn1/rua/RUA-PDU.asn b/asn1/rua/RUA-PDU.asn
index 159d8ac..ea2bccc 100644
--- a/asn1/rua/RUA-PDU.asn
+++ b/asn1/rua/RUA-PDU.asn
@@ -7,6 +7,7 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
+ maxProtocolIEs,
Criticality,
ProcedureCode,
ProtocolIE-ID
@@ -38,6 +39,38 @@ UnsuccessfulOutcome ::= SEQUENCE {
value ANY
}
+
+Connect ::= SEQUENCE {
+ connect-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+DirectTransfer ::= SEQUENCE {
+ directTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+Disconnect ::= SEQUENCE {
+ disconnect-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ConnectionlessTransfer ::= SEQUENCE {
+ connectionlessTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+ErrorIndication ::= SEQUENCE {
+ errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+PrivateMessage ::= SEQUENCE {
+ privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
+ ...
+}
+
+
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,